@supraio/client-daemon-js 0.0.0-mznacl.255 → 0.0.0-mznacl.256

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -65772,6 +65772,397 @@ $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
65772
65772
  $pkg.$init = $init;
65773
65773
  return $pkg;
65774
65774
  })();
65775
+ $packages["github.com/coder/websocket/internal/bpool"] = (function() {
65776
+ var $pkg = {}, $init, bytes, sync, sliceType, sliceType$1, ptrType, bpool, Get, Put;
65777
+ bytes = $packages["bytes"];
65778
+ sync = $packages["sync"];
65779
+ sliceType = $sliceType($emptyInterface);
65780
+ sliceType$1 = $sliceType($Uint8);
65781
+ ptrType = $ptrType(bytes.Buffer);
65782
+ Get = function() {
65783
+ var {_r, b, $s, $r, $c} = $restore(this, {});
65784
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65785
+ _r = bpool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65786
+ b = _r;
65787
+ if ($interfaceIsEqual(b, $ifaceNil)) {
65788
+ $s = -1; return new bytes.Buffer.ptr(sliceType$1.nil, 0, 0);
65789
+ }
65790
+ $s = -1; return $assertType(b, ptrType);
65791
+ /* */ } return; } var $f = {$blk: Get, $c: true, $r, _r, b, $s};return $f;
65792
+ };
65793
+ $pkg.Get = Get;
65794
+ Put = function(b) {
65795
+ var b;
65796
+ b.Reset();
65797
+ bpool.Put(b);
65798
+ };
65799
+ $pkg.Put = Put;
65800
+ $init = function() {
65801
+ $pkg.$init = function() {};
65802
+ /* */ 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:
65803
+ $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65804
+ $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65805
+ bpool = new sync.Pool.ptr(sliceType.nil, $throwNilPointerError);
65806
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
65807
+ };
65808
+ $pkg.$init = $init;
65809
+ return $pkg;
65810
+ })();
65811
+ $packages["github.com/coder/websocket/internal/wsjs"] = (function() {
65812
+ var $pkg = {}, $init, js, WebSocket, CloseEvent, MessageEvent, funcType, arrayType, ptrType, sliceType, sliceType$1, funcType$1, funcType$2, funcType$3, handleJSError, New, extractArrayBuffer, uint8Array;
65813
+ js = $packages["syscall/js"];
65814
+ WebSocket = $pkg.WebSocket = $newType(0, $kindStruct, "wsjs.WebSocket", true, "github.com/coder/websocket/internal/wsjs", true, function(v_) {
65815
+ this.$val = this;
65816
+ if (arguments.length === 0) {
65817
+ this.v = new js.Value.ptr(null, false, arrayType.zero());
65818
+ return;
65819
+ }
65820
+ this.v = v_;
65821
+ });
65822
+ CloseEvent = $pkg.CloseEvent = $newType(0, $kindStruct, "wsjs.CloseEvent", true, "github.com/coder/websocket/internal/wsjs", true, function(Code_, Reason_, WasClean_) {
65823
+ this.$val = this;
65824
+ if (arguments.length === 0) {
65825
+ this.Code = 0;
65826
+ this.Reason = "";
65827
+ this.WasClean = false;
65828
+ return;
65829
+ }
65830
+ this.Code = Code_;
65831
+ this.Reason = Reason_;
65832
+ this.WasClean = WasClean_;
65833
+ });
65834
+ MessageEvent = $pkg.MessageEvent = $newType(0, $kindStruct, "wsjs.MessageEvent", true, "github.com/coder/websocket/internal/wsjs", true, function(Data_) {
65835
+ this.$val = this;
65836
+ if (arguments.length === 0) {
65837
+ this.Data = $ifaceNil;
65838
+ return;
65839
+ }
65840
+ this.Data = Data_;
65841
+ });
65842
+ funcType = $funcType([], [], false);
65843
+ arrayType = $arrayType(funcType, 0);
65844
+ ptrType = $ptrType($error);
65845
+ sliceType = $sliceType($emptyInterface);
65846
+ sliceType$1 = $sliceType($Uint8);
65847
+ funcType$1 = $funcType([js.Value], [], false);
65848
+ funcType$2 = $funcType([CloseEvent], [], false);
65849
+ funcType$3 = $funcType([MessageEvent], [], false);
65850
+ handleJSError = function(err, onErr) {
65851
+ var {_tuple, err, jsErr, ok, onErr, r, $s, $r, $c} = $restore(this, {err, onErr});
65852
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65853
+ r = $recover();
65854
+ _tuple = $assertType(r, js.Error, true);
65855
+ jsErr = $clone(_tuple[0], js.Error);
65856
+ ok = _tuple[1];
65857
+ /* */ if (ok) { $s = 1; continue; }
65858
+ /* */ $s = 2; continue;
65859
+ /* if (ok) { */ case 1:
65860
+ err.$set(new jsErr.constructor.elem(jsErr));
65861
+ /* */ if (!(onErr === $throwNilPointerError)) { $s = 3; continue; }
65862
+ /* */ $s = 4; continue;
65863
+ /* if (!(onErr === $throwNilPointerError)) { */ case 3:
65864
+ $r = onErr(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65865
+ /* } */ case 4:
65866
+ $s = -1; return;
65867
+ /* } */ case 2:
65868
+ if (!($interfaceIsEqual(r, $ifaceNil))) {
65869
+ $panic(r);
65870
+ }
65871
+ $s = -1; return;
65872
+ /* */ } return; } var $f = {$blk: handleJSError, $c: true, $r, _tuple, err, jsErr, ok, onErr, r, $s};return $f;
65873
+ };
65874
+ New = function(url, protocols) {
65875
+ var {$24r, _i, _r, _ref, _tmp, _tmp$1, c, err, i, jsProtocols, p, protocols, url, $s, $deferred, $r, $c} = $restore(this, {url, protocols});
65876
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
65877
+ c = [c];
65878
+ err = [err];
65879
+ c[0] = new WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero()));
65880
+ err[0] = $ifaceNil;
65881
+ $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), (function(c, err) { return function() {
65882
+ WebSocket.copy(c[0], new WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero())));
65883
+ }; })(c, err)]]);
65884
+ jsProtocols = $makeSlice(sliceType, protocols.$length);
65885
+ _ref = protocols;
65886
+ _i = 0;
65887
+ while (true) {
65888
+ if (!(_i < _ref.$length)) { break; }
65889
+ i = _i;
65890
+ p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
65891
+ ((i < 0 || i >= jsProtocols.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsProtocols.$array[jsProtocols.$offset + i] = new $String(p));
65892
+ _i++;
65893
+ }
65894
+ _r = $clone($clone(js.Global(), js.Value).Get("WebSocket"), js.Value).New(new sliceType([new $String(url), jsProtocols])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65895
+ WebSocket.copy(c[0], new WebSocket.ptr($clone(_r, js.Value)));
65896
+ $clone(c[0], WebSocket).setBinaryType("arraybuffer");
65897
+ _tmp = $clone(c[0], WebSocket);
65898
+ _tmp$1 = $ifaceNil;
65899
+ WebSocket.copy(c[0], _tmp);
65900
+ err[0] = _tmp$1;
65901
+ $24r = [c[0], err[0]];
65902
+ $s = 2; case 2: return $24r;
65903
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [c[0], err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: New, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, c, err, i, jsProtocols, p, protocols, url, $s, $deferred};return $f; } }
65904
+ };
65905
+ $pkg.New = New;
65906
+ WebSocket.ptr.prototype.setBinaryType = function(typ) {
65907
+ var c, typ;
65908
+ c = this;
65909
+ $clone(c.v, js.Value).Set("binaryType", new $String((typ)));
65910
+ };
65911
+ WebSocket.prototype.setBinaryType = function(typ) { return this.$val.setBinaryType(typ); };
65912
+ WebSocket.ptr.prototype.addEventListener = function(eventType, fn) {
65913
+ var {_r, c, eventType, f, fn, $s, $r, $c} = $restore(this, {eventType, fn});
65914
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65915
+ c = [c];
65916
+ eventType = [eventType];
65917
+ f = [f];
65918
+ fn = [fn];
65919
+ c[0] = this;
65920
+ f[0] = $clone(js.FuncOf((function(c, eventType, f, fn) { return function $b(this$1, args) {
65921
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
65922
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65923
+ $r = fn[0]($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65924
+ $s = -1; return $ifaceNil;
65925
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
65926
+ }; })(c, eventType, f, fn)), js.Func);
65927
+ _r = $clone(c[0].v, js.Value).Call("addEventListener", new sliceType([new $String(eventType[0]), new f[0].constructor.elem(f[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65928
+ _r;
65929
+ $s = -1; return (function(c, eventType, f, fn) { return function $b() {
65930
+ var {_r$1, $s, $r, $c} = $restore(this, {});
65931
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65932
+ _r$1 = $clone(c[0].v, js.Value).Call("removeEventListener", new sliceType([new $String(eventType[0]), new f[0].constructor.elem(f[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
65933
+ _r$1;
65934
+ $clone(f[0], js.Func).Release();
65935
+ $s = -1; return;
65936
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
65937
+ }; })(c, eventType, f, fn);
65938
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.addEventListener, $c: true, $r, _r, c, eventType, f, fn, $s};return $f;
65939
+ };
65940
+ WebSocket.prototype.addEventListener = function(eventType, fn) { return this.$val.addEventListener(eventType, fn); };
65941
+ WebSocket.ptr.prototype.OnClose = function(fn) {
65942
+ var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
65943
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65944
+ fn = [fn];
65945
+ remove = $throwNilPointerError;
65946
+ c = this;
65947
+ _r = $clone(c, WebSocket).addEventListener("close", (function(fn) { return function $b(e) {
65948
+ var {ce, e, $s, $r, $c} = $restore(this, {e});
65949
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65950
+ ce = new CloseEvent.ptr((($clone($clone(e, js.Value).Get("code"), js.Value).Int() << 16 >>> 16)), $clone($clone(e, js.Value).Get("reason"), js.Value).String(), $clone($clone(e, js.Value).Get("wasClean"), js.Value).Bool());
65951
+ $r = fn[0]($clone(ce, CloseEvent)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65952
+ $s = -1; return;
65953
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, ce, e, $s};return $f;
65954
+ }; })(fn)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65955
+ remove = _r;
65956
+ $24r = remove;
65957
+ $s = 2; case 2: return $24r;
65958
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnClose, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
65959
+ };
65960
+ WebSocket.prototype.OnClose = function(fn) { return this.$val.OnClose(fn); };
65961
+ WebSocket.ptr.prototype.OnError = function(fn) {
65962
+ var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
65963
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65964
+ remove = $throwNilPointerError;
65965
+ c = this;
65966
+ _r = $clone(c, WebSocket).addEventListener("error", fn); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65967
+ remove = _r;
65968
+ $24r = remove;
65969
+ $s = 2; case 2: return $24r;
65970
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnError, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
65971
+ };
65972
+ WebSocket.prototype.OnError = function(fn) { return this.$val.OnError(fn); };
65973
+ WebSocket.ptr.prototype.OnMessage = function(fn) {
65974
+ var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
65975
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65976
+ fn = [fn];
65977
+ remove = $throwNilPointerError;
65978
+ c = this;
65979
+ _r = $clone(c, WebSocket).addEventListener("message", (function(fn) { return function $b(e) {
65980
+ var {_r, arrayBuffer, data, e, me, $s, $r, $c} = $restore(this, {e});
65981
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
65982
+ data = $ifaceNil;
65983
+ arrayBuffer = $clone($clone(e, js.Value).Get("data"), js.Value);
65984
+ /* */ if ($clone(arrayBuffer, js.Value).Type() === 4) { $s = 1; continue; }
65985
+ /* */ $s = 2; continue;
65986
+ /* if ($clone(arrayBuffer, js.Value).Type() === 4) { */ case 1:
65987
+ data = new $String($clone(arrayBuffer, js.Value).String());
65988
+ $s = 3; continue;
65989
+ /* } else { */ case 2:
65990
+ _r = extractArrayBuffer($clone(arrayBuffer, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65991
+ data = _r;
65992
+ /* } */ case 3:
65993
+ me = new MessageEvent.ptr(data);
65994
+ $r = fn[0]($clone(me, MessageEvent)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
65995
+ $s = -1; return;
65996
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, arrayBuffer, data, e, me, $s};return $f;
65997
+ }; })(fn)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
65998
+ remove = _r;
65999
+ $24r = remove;
66000
+ $s = 2; case 2: return $24r;
66001
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnMessage, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
66002
+ };
66003
+ WebSocket.prototype.OnMessage = function(fn) { return this.$val.OnMessage(fn); };
66004
+ WebSocket.ptr.prototype.Subprotocol = function() {
66005
+ var c;
66006
+ c = this;
66007
+ return $clone($clone(c.v, js.Value).Get("protocol"), js.Value).String();
66008
+ };
66009
+ WebSocket.prototype.Subprotocol = function() { return this.$val.Subprotocol(); };
66010
+ WebSocket.ptr.prototype.OnOpen = function(fn) {
66011
+ var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
66012
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
66013
+ remove = $throwNilPointerError;
66014
+ c = this;
66015
+ _r = $clone(c, WebSocket).addEventListener("open", fn); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
66016
+ remove = _r;
66017
+ $24r = remove;
66018
+ $s = 2; case 2: return $24r;
66019
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnOpen, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
66020
+ };
66021
+ WebSocket.prototype.OnOpen = function(fn) { return this.$val.OnOpen(fn); };
66022
+ WebSocket.ptr.prototype.Close = function(code, reason) {
66023
+ var {$24r, _r, c, code, err, reason, $s, $deferred, $r, $c} = $restore(this, {code, reason});
66024
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
66025
+ err = [err];
66026
+ err[0] = $ifaceNil;
66027
+ c = this;
66028
+ $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
66029
+ _r = $clone(c.v, js.Value).Call("close", new sliceType([new $Int(code), new $String(reason)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
66030
+ _r;
66031
+ err[0] = err[0];
66032
+ $24r = err[0];
66033
+ $s = 2; case 2: return $24r;
66034
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: WebSocket.ptr.prototype.Close, $c: true, $r, $24r, _r, c, code, err, reason, $s, $deferred};return $f; } }
66035
+ };
66036
+ WebSocket.prototype.Close = function(code, reason) { return this.$val.Close(code, reason); };
66037
+ WebSocket.ptr.prototype.SendText = function(v) {
66038
+ var {$24r, _r, c, err, v, $s, $deferred, $r, $c} = $restore(this, {v});
66039
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
66040
+ err = [err];
66041
+ err[0] = $ifaceNil;
66042
+ c = this;
66043
+ $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
66044
+ _r = $clone(c.v, js.Value).Call("send", new sliceType([new $String(v)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
66045
+ _r;
66046
+ err[0] = err[0];
66047
+ $24r = err[0];
66048
+ $s = 2; case 2: return $24r;
66049
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: WebSocket.ptr.prototype.SendText, $c: true, $r, $24r, _r, c, err, v, $s, $deferred};return $f; } }
66050
+ };
66051
+ WebSocket.prototype.SendText = function(v) { return this.$val.SendText(v); };
66052
+ WebSocket.ptr.prototype.SendBytes = function(v) {
66053
+ var {$24r, _arg, _r, _r$1, c, err, v, x, $s, $deferred, $r, $c} = $restore(this, {v});
66054
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
66055
+ err = [err];
66056
+ err[0] = $ifaceNil;
66057
+ c = this;
66058
+ $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
66059
+ _r = uint8Array(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
66060
+ _arg = (x = _r, new x.constructor.elem(x));
66061
+ _r$1 = $clone(c.v, js.Value).Call("send", new sliceType([_arg])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
66062
+ _r$1;
66063
+ err[0] = err[0];
66064
+ $24r = err[0];
66065
+ $s = 3; case 3: return $24r;
66066
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: WebSocket.ptr.prototype.SendBytes, $c: true, $r, $24r, _arg, _r, _r$1, c, err, v, x, $s, $deferred};return $f; } }
66067
+ };
66068
+ WebSocket.prototype.SendBytes = function(v) { return this.$val.SendBytes(v); };
66069
+ extractArrayBuffer = function(arrayBuffer) {
66070
+ var {_r, arrayBuffer, dst, uint8Array$1, $s, $r, $c} = $restore(this, {arrayBuffer});
66071
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
66072
+ _r = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new arrayBuffer.constructor.elem(arrayBuffer)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
66073
+ uint8Array$1 = $clone(_r, js.Value);
66074
+ dst = $makeSlice(sliceType$1, $clone(uint8Array$1, js.Value).Length());
66075
+ js.CopyBytesToGo(dst, $clone(uint8Array$1, js.Value));
66076
+ $s = -1; return dst;
66077
+ /* */ } return; } var $f = {$blk: extractArrayBuffer, $c: true, $r, _r, arrayBuffer, dst, uint8Array$1, $s};return $f;
66078
+ };
66079
+ uint8Array = function(src) {
66080
+ var {_r, src, uint8Array$1, $s, $r, $c} = $restore(this, {src});
66081
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
66082
+ _r = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(src.$length)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
66083
+ uint8Array$1 = $clone(_r, js.Value);
66084
+ js.CopyBytesToJS($clone(uint8Array$1, js.Value), src);
66085
+ $s = -1; return uint8Array$1;
66086
+ /* */ } return; } var $f = {$blk: uint8Array, $c: true, $r, _r, src, uint8Array$1, $s};return $f;
66087
+ };
66088
+ WebSocket.methods = [{prop: "setBinaryType", name: "setBinaryType", pkg: "github.com/coder/websocket/internal/wsjs", typ: $funcType([$String], [], false)}, {prop: "addEventListener", name: "addEventListener", pkg: "github.com/coder/websocket/internal/wsjs", typ: $funcType([$String, funcType$1], [funcType], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType$2], [funcType], false)}, {prop: "OnError", name: "OnError", pkg: "", typ: $funcType([funcType$1], [funcType], false)}, {prop: "OnMessage", name: "OnMessage", pkg: "", typ: $funcType([funcType$3], [funcType], false)}, {prop: "Subprotocol", name: "Subprotocol", pkg: "", typ: $funcType([], [$String], false)}, {prop: "OnOpen", name: "OnOpen", pkg: "", typ: $funcType([funcType$1], [funcType], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([$Int, $String], [$error], false)}, {prop: "SendText", name: "SendText", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "SendBytes", name: "SendBytes", pkg: "", typ: $funcType([sliceType$1], [$error], false)}];
66089
+ WebSocket.init("github.com/coder/websocket/internal/wsjs", [{prop: "v", name: "v", embedded: false, exported: false, typ: js.Value, tag: ""}]);
66090
+ CloseEvent.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Reason", name: "Reason", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "WasClean", name: "WasClean", embedded: false, exported: true, typ: $Bool, tag: ""}]);
66091
+ MessageEvent.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: $emptyInterface, tag: ""}]);
66092
+ $init = function() {
66093
+ $pkg.$init = function() {};
66094
+ /* */ 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:
66095
+ $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66096
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
66097
+ };
66098
+ $pkg.$init = $init;
66099
+ return $pkg;
66100
+ })();
66101
+ $packages["runtime/debug"] = (function() {
66102
+ var $pkg = {}, $init, fmt, os, runtime, sort, strconv, strings, time;
66103
+ fmt = $packages["fmt"];
66104
+ os = $packages["os"];
66105
+ runtime = $packages["runtime"];
66106
+ sort = $packages["sort"];
66107
+ strconv = $packages["strconv"];
66108
+ strings = $packages["strings"];
66109
+ time = $packages["time"];
66110
+ $init = function() {
66111
+ $pkg.$init = function() {};
66112
+ /* */ 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:
66113
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66114
+ $r = os.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66115
+ $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66116
+ $r = sort.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66117
+ $r = strconv.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66118
+ $r = strings.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66119
+ $r = time.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66120
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
66121
+ };
66122
+ $pkg.$init = $init;
66123
+ return $pkg;
66124
+ })();
66125
+ $packages["github.com/coder/websocket/internal/xsync"] = (function() {
66126
+ var $pkg = {}, $init, fmt, debug, atomic, Int64, ptrType;
66127
+ fmt = $packages["fmt"];
66128
+ debug = $packages["runtime/debug"];
66129
+ atomic = $packages["sync/atomic"];
66130
+ Int64 = $pkg.Int64 = $newType(0, $kindStruct, "xsync.Int64", true, "github.com/coder/websocket/internal/xsync", true, function(i_) {
66131
+ this.$val = this;
66132
+ if (arguments.length === 0) {
66133
+ this.i = new atomic.Value.ptr($ifaceNil);
66134
+ return;
66135
+ }
66136
+ this.i = i_;
66137
+ });
66138
+ ptrType = $ptrType(Int64);
66139
+ Int64.ptr.prototype.Load = function() {
66140
+ var _tuple, i, v;
66141
+ v = this;
66142
+ _tuple = $assertType(v.i.Load(), $Int64, true);
66143
+ i = _tuple[0];
66144
+ return i;
66145
+ };
66146
+ Int64.prototype.Load = function() { return this.$val.Load(); };
66147
+ Int64.ptr.prototype.Store = function(i) {
66148
+ var i, v;
66149
+ v = this;
66150
+ v.i.Store(i);
66151
+ };
66152
+ Int64.prototype.Store = function(i) { return this.$val.Store(i); };
66153
+ ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int64], [], false)}];
66154
+ Int64.init("github.com/coder/websocket/internal/xsync", [{prop: "i", name: "i", embedded: false, exported: false, typ: atomic.Value, tag: ""}]);
66155
+ $init = function() {
66156
+ $pkg.$init = function() {};
66157
+ /* */ 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:
66158
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66159
+ $r = debug.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66160
+ $r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
66161
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
66162
+ };
66163
+ $pkg.$init = $init;
66164
+ return $pkg;
66165
+ })();
65775
66166
  $packages["internal/nettrace"] = (function() {
65776
66167
  var $pkg = {}, $init, TraceKey, LookupIPAltResolverKey, Trace, funcType, sliceType, funcType$1, funcType$2, funcType$3;
65777
66168
  TraceKey = $pkg.TraceKey = $newType(0, $kindStruct, "nettrace.TraceKey", true, "internal/nettrace", true, function() {
@@ -176263,442 +176654,70 @@ $packages["net/http"] = (function() {
176263
176654
  $pkg.$init = $init;
176264
176655
  return $pkg;
176265
176656
  })();
176266
- $packages["nhooyr.io/websocket/internal/bpool"] = (function() {
176267
- var $pkg = {}, $init, bytes, sync, sliceType, sliceType$1, ptrType, bpool, Get, Put;
176268
- bytes = $packages["bytes"];
176269
- sync = $packages["sync"];
176270
- sliceType = $sliceType($emptyInterface);
176271
- sliceType$1 = $sliceType($Uint8);
176272
- ptrType = $ptrType(bytes.Buffer);
176273
- Get = function() {
176274
- var {_r, b, $s, $r, $c} = $restore(this, {});
176275
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176276
- _r = bpool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176277
- b = _r;
176278
- if ($interfaceIsEqual(b, $ifaceNil)) {
176279
- $s = -1; return new bytes.Buffer.ptr(sliceType$1.nil, 0, 0);
176280
- }
176281
- $s = -1; return $assertType(b, ptrType);
176282
- /* */ } return; } var $f = {$blk: Get, $c: true, $r, _r, b, $s};return $f;
176283
- };
176284
- $pkg.Get = Get;
176285
- Put = function(b) {
176286
- var b;
176287
- b.Reset();
176288
- bpool.Put(b);
176289
- };
176290
- $pkg.Put = Put;
176291
- $init = function() {
176292
- $pkg.$init = function() {};
176293
- /* */ 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:
176294
- $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176295
- $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176296
- bpool = new sync.Pool.ptr(sliceType.nil, $throwNilPointerError);
176297
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
176298
- };
176299
- $pkg.$init = $init;
176300
- return $pkg;
176301
- })();
176302
- $packages["nhooyr.io/websocket/internal/errd"] = (function() {
176303
- var $pkg = {}, $init, fmt;
176304
- fmt = $packages["fmt"];
176305
- $init = function() {
176306
- $pkg.$init = function() {};
176307
- /* */ 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:
176308
- $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176309
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
176310
- };
176311
- $pkg.$init = $init;
176312
- return $pkg;
176313
- })();
176314
- $packages["nhooyr.io/websocket/internal/wsjs"] = (function() {
176315
- var $pkg = {}, $init, js, WebSocket, CloseEvent, MessageEvent, funcType, arrayType, ptrType, sliceType, sliceType$1, funcType$1, funcType$2, funcType$3, handleJSError, New, extractArrayBuffer, uint8Array;
176316
- js = $packages["syscall/js"];
176317
- WebSocket = $pkg.WebSocket = $newType(0, $kindStruct, "wsjs.WebSocket", true, "nhooyr.io/websocket/internal/wsjs", true, function(v_) {
176318
- this.$val = this;
176319
- if (arguments.length === 0) {
176320
- this.v = new js.Value.ptr(null, false, arrayType.zero());
176321
- return;
176322
- }
176323
- this.v = v_;
176324
- });
176325
- CloseEvent = $pkg.CloseEvent = $newType(0, $kindStruct, "wsjs.CloseEvent", true, "nhooyr.io/websocket/internal/wsjs", true, function(Code_, Reason_, WasClean_) {
176326
- this.$val = this;
176327
- if (arguments.length === 0) {
176328
- this.Code = 0;
176329
- this.Reason = "";
176330
- this.WasClean = false;
176331
- return;
176332
- }
176333
- this.Code = Code_;
176334
- this.Reason = Reason_;
176335
- this.WasClean = WasClean_;
176336
- });
176337
- MessageEvent = $pkg.MessageEvent = $newType(0, $kindStruct, "wsjs.MessageEvent", true, "nhooyr.io/websocket/internal/wsjs", true, function(Data_) {
176338
- this.$val = this;
176339
- if (arguments.length === 0) {
176340
- this.Data = $ifaceNil;
176341
- return;
176342
- }
176343
- this.Data = Data_;
176344
- });
176345
- funcType = $funcType([], [], false);
176346
- arrayType = $arrayType(funcType, 0);
176347
- ptrType = $ptrType($error);
176348
- sliceType = $sliceType($emptyInterface);
176349
- sliceType$1 = $sliceType($Uint8);
176350
- funcType$1 = $funcType([js.Value], [], false);
176351
- funcType$2 = $funcType([CloseEvent], [], false);
176352
- funcType$3 = $funcType([MessageEvent], [], false);
176353
- handleJSError = function(err, onErr) {
176354
- var {_tuple, err, jsErr, ok, onErr, r, $s, $r, $c} = $restore(this, {err, onErr});
176355
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176356
- r = $recover();
176357
- _tuple = $assertType(r, js.Error, true);
176358
- jsErr = $clone(_tuple[0], js.Error);
176359
- ok = _tuple[1];
176360
- /* */ if (ok) { $s = 1; continue; }
176361
- /* */ $s = 2; continue;
176362
- /* if (ok) { */ case 1:
176363
- err.$set(new jsErr.constructor.elem(jsErr));
176364
- /* */ if (!(onErr === $throwNilPointerError)) { $s = 3; continue; }
176365
- /* */ $s = 4; continue;
176366
- /* if (!(onErr === $throwNilPointerError)) { */ case 3:
176367
- $r = onErr(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176368
- /* } */ case 4:
176369
- $s = -1; return;
176370
- /* } */ case 2:
176371
- if (!($interfaceIsEqual(r, $ifaceNil))) {
176372
- $panic(r);
176373
- }
176374
- $s = -1; return;
176375
- /* */ } return; } var $f = {$blk: handleJSError, $c: true, $r, _tuple, err, jsErr, ok, onErr, r, $s};return $f;
176376
- };
176377
- New = function(url, protocols) {
176378
- var {$24r, _i, _r, _ref, _tmp, _tmp$1, c, err, i, jsProtocols, p, protocols, url, $s, $deferred, $r, $c} = $restore(this, {url, protocols});
176379
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
176380
- c = [c];
176381
- err = [err];
176382
- c[0] = new WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero()));
176383
- err[0] = $ifaceNil;
176384
- $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), (function(c, err) { return function() {
176385
- WebSocket.copy(c[0], new WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero())));
176386
- }; })(c, err)]]);
176387
- jsProtocols = $makeSlice(sliceType, protocols.$length);
176388
- _ref = protocols;
176389
- _i = 0;
176390
- while (true) {
176391
- if (!(_i < _ref.$length)) { break; }
176392
- i = _i;
176393
- p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
176394
- ((i < 0 || i >= jsProtocols.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsProtocols.$array[jsProtocols.$offset + i] = new $String(p));
176395
- _i++;
176396
- }
176397
- _r = $clone($clone(js.Global(), js.Value).Get("WebSocket"), js.Value).New(new sliceType([new $String(url), jsProtocols])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176398
- WebSocket.copy(c[0], new WebSocket.ptr($clone(_r, js.Value)));
176399
- $clone(c[0], WebSocket).setBinaryType("arraybuffer");
176400
- _tmp = $clone(c[0], WebSocket);
176401
- _tmp$1 = $ifaceNil;
176402
- WebSocket.copy(c[0], _tmp);
176403
- err[0] = _tmp$1;
176404
- $24r = [c[0], err[0]];
176405
- $s = 2; case 2: return $24r;
176406
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [c[0], err[0]]; } if($curGoroutine.asleep) { var $f = {$blk: New, $c: true, $r, $24r, _i, _r, _ref, _tmp, _tmp$1, c, err, i, jsProtocols, p, protocols, url, $s, $deferred};return $f; } }
176407
- };
176408
- $pkg.New = New;
176409
- WebSocket.ptr.prototype.setBinaryType = function(typ) {
176410
- var c, typ;
176411
- c = this;
176412
- $clone(c.v, js.Value).Set("binaryType", new $String((typ)));
176413
- };
176414
- WebSocket.prototype.setBinaryType = function(typ) { return this.$val.setBinaryType(typ); };
176415
- WebSocket.ptr.prototype.addEventListener = function(eventType, fn) {
176416
- var {_r, c, eventType, f, fn, $s, $r, $c} = $restore(this, {eventType, fn});
176417
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176418
- c = [c];
176419
- eventType = [eventType];
176420
- f = [f];
176421
- fn = [fn];
176422
- c[0] = this;
176423
- f[0] = $clone(js.FuncOf((function(c, eventType, f, fn) { return function $b(this$1, args) {
176424
- var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
176425
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176426
- $r = fn[0]($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176427
- $s = -1; return $ifaceNil;
176428
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
176429
- }; })(c, eventType, f, fn)), js.Func);
176430
- _r = $clone(c[0].v, js.Value).Call("addEventListener", new sliceType([new $String(eventType[0]), new f[0].constructor.elem(f[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176431
- _r;
176432
- $s = -1; return (function(c, eventType, f, fn) { return function $b() {
176433
- var {_r$1, $s, $r, $c} = $restore(this, {});
176434
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176435
- _r$1 = $clone(c[0].v, js.Value).Call("removeEventListener", new sliceType([new $String(eventType[0]), new f[0].constructor.elem(f[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
176436
- _r$1;
176437
- $clone(f[0], js.Func).Release();
176438
- $s = -1; return;
176439
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
176440
- }; })(c, eventType, f, fn);
176441
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.addEventListener, $c: true, $r, _r, c, eventType, f, fn, $s};return $f;
176442
- };
176443
- WebSocket.prototype.addEventListener = function(eventType, fn) { return this.$val.addEventListener(eventType, fn); };
176444
- WebSocket.ptr.prototype.OnClose = function(fn) {
176445
- var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
176446
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176447
- fn = [fn];
176448
- remove = $throwNilPointerError;
176449
- c = this;
176450
- _r = $clone(c, WebSocket).addEventListener("close", (function(fn) { return function $b(e) {
176451
- var {ce, e, $s, $r, $c} = $restore(this, {e});
176452
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176453
- ce = new CloseEvent.ptr((($clone($clone(e, js.Value).Get("code"), js.Value).Int() << 16 >>> 16)), $clone($clone(e, js.Value).Get("reason"), js.Value).String(), $clone($clone(e, js.Value).Get("wasClean"), js.Value).Bool());
176454
- $r = fn[0]($clone(ce, CloseEvent)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176455
- $s = -1; return;
176456
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, ce, e, $s};return $f;
176457
- }; })(fn)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176458
- remove = _r;
176459
- $24r = remove;
176460
- $s = 2; case 2: return $24r;
176461
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnClose, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
176462
- };
176463
- WebSocket.prototype.OnClose = function(fn) { return this.$val.OnClose(fn); };
176464
- WebSocket.ptr.prototype.OnError = function(fn) {
176465
- var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
176466
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176467
- remove = $throwNilPointerError;
176468
- c = this;
176469
- _r = $clone(c, WebSocket).addEventListener("error", fn); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176470
- remove = _r;
176471
- $24r = remove;
176472
- $s = 2; case 2: return $24r;
176473
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnError, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
176474
- };
176475
- WebSocket.prototype.OnError = function(fn) { return this.$val.OnError(fn); };
176476
- WebSocket.ptr.prototype.OnMessage = function(fn) {
176477
- var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
176478
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176479
- fn = [fn];
176480
- remove = $throwNilPointerError;
176481
- c = this;
176482
- _r = $clone(c, WebSocket).addEventListener("message", (function(fn) { return function $b(e) {
176483
- var {_r, arrayBuffer, data, e, me, $s, $r, $c} = $restore(this, {e});
176484
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176485
- data = $ifaceNil;
176486
- arrayBuffer = $clone($clone(e, js.Value).Get("data"), js.Value);
176487
- /* */ if ($clone(arrayBuffer, js.Value).Type() === 4) { $s = 1; continue; }
176488
- /* */ $s = 2; continue;
176489
- /* if ($clone(arrayBuffer, js.Value).Type() === 4) { */ case 1:
176490
- data = new $String($clone(arrayBuffer, js.Value).String());
176491
- $s = 3; continue;
176492
- /* } else { */ case 2:
176493
- _r = extractArrayBuffer($clone(arrayBuffer, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176494
- data = _r;
176495
- /* } */ case 3:
176496
- me = new MessageEvent.ptr(data);
176497
- $r = fn[0]($clone(me, MessageEvent)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176498
- $s = -1; return;
176499
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, arrayBuffer, data, e, me, $s};return $f;
176500
- }; })(fn)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176501
- remove = _r;
176502
- $24r = remove;
176503
- $s = 2; case 2: return $24r;
176504
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnMessage, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
176505
- };
176506
- WebSocket.prototype.OnMessage = function(fn) { return this.$val.OnMessage(fn); };
176507
- WebSocket.ptr.prototype.Subprotocol = function() {
176508
- var c;
176509
- c = this;
176510
- return $clone($clone(c.v, js.Value).Get("protocol"), js.Value).String();
176511
- };
176512
- WebSocket.prototype.Subprotocol = function() { return this.$val.Subprotocol(); };
176513
- WebSocket.ptr.prototype.OnOpen = function(fn) {
176514
- var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
176515
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176516
- remove = $throwNilPointerError;
176517
- c = this;
176518
- _r = $clone(c, WebSocket).addEventListener("open", fn); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176519
- remove = _r;
176520
- $24r = remove;
176521
- $s = 2; case 2: return $24r;
176522
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnOpen, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
176523
- };
176524
- WebSocket.prototype.OnOpen = function(fn) { return this.$val.OnOpen(fn); };
176525
- WebSocket.ptr.prototype.Close = function(code, reason) {
176526
- var {$24r, _r, c, code, err, reason, $s, $deferred, $r, $c} = $restore(this, {code, reason});
176527
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
176528
- err = [err];
176529
- err[0] = $ifaceNil;
176530
- c = this;
176531
- $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
176532
- _r = $clone(c.v, js.Value).Call("close", new sliceType([new $Int(code), new $String(reason)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176533
- _r;
176534
- err[0] = err[0];
176535
- $24r = err[0];
176536
- $s = 2; case 2: return $24r;
176537
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: WebSocket.ptr.prototype.Close, $c: true, $r, $24r, _r, c, code, err, reason, $s, $deferred};return $f; } }
176538
- };
176539
- WebSocket.prototype.Close = function(code, reason) { return this.$val.Close(code, reason); };
176540
- WebSocket.ptr.prototype.SendText = function(v) {
176541
- var {$24r, _r, c, err, v, $s, $deferred, $r, $c} = $restore(this, {v});
176542
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
176543
- err = [err];
176544
- err[0] = $ifaceNil;
176545
- c = this;
176546
- $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
176547
- _r = $clone(c.v, js.Value).Call("send", new sliceType([new $String(v)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176548
- _r;
176549
- err[0] = err[0];
176550
- $24r = err[0];
176551
- $s = 2; case 2: return $24r;
176552
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: WebSocket.ptr.prototype.SendText, $c: true, $r, $24r, _r, c, err, v, $s, $deferred};return $f; } }
176553
- };
176554
- WebSocket.prototype.SendText = function(v) { return this.$val.SendText(v); };
176555
- WebSocket.ptr.prototype.SendBytes = function(v) {
176556
- var {$24r, _arg, _r, _r$1, c, err, v, x, $s, $deferred, $r, $c} = $restore(this, {v});
176557
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
176558
- err = [err];
176559
- err[0] = $ifaceNil;
176560
- c = this;
176561
- $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
176562
- _r = uint8Array(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176563
- _arg = (x = _r, new x.constructor.elem(x));
176564
- _r$1 = $clone(c.v, js.Value).Call("send", new sliceType([_arg])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
176565
- _r$1;
176566
- err[0] = err[0];
176567
- $24r = err[0];
176568
- $s = 3; case 3: return $24r;
176569
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { var $f = {$blk: WebSocket.ptr.prototype.SendBytes, $c: true, $r, $24r, _arg, _r, _r$1, c, err, v, x, $s, $deferred};return $f; } }
176570
- };
176571
- WebSocket.prototype.SendBytes = function(v) { return this.$val.SendBytes(v); };
176572
- extractArrayBuffer = function(arrayBuffer) {
176573
- var {_r, arrayBuffer, dst, uint8Array$1, $s, $r, $c} = $restore(this, {arrayBuffer});
176574
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176575
- _r = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new arrayBuffer.constructor.elem(arrayBuffer)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176576
- uint8Array$1 = $clone(_r, js.Value);
176577
- dst = $makeSlice(sliceType$1, $clone(uint8Array$1, js.Value).Length());
176578
- js.CopyBytesToGo(dst, $clone(uint8Array$1, js.Value));
176579
- $s = -1; return dst;
176580
- /* */ } return; } var $f = {$blk: extractArrayBuffer, $c: true, $r, _r, arrayBuffer, dst, uint8Array$1, $s};return $f;
176581
- };
176582
- uint8Array = function(src) {
176583
- var {_r, src, uint8Array$1, $s, $r, $c} = $restore(this, {src});
176584
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176585
- _r = $clone($clone(js.Global(), js.Value).Get("Uint8Array"), js.Value).New(new sliceType([new $Int(src.$length)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176586
- uint8Array$1 = $clone(_r, js.Value);
176587
- js.CopyBytesToJS($clone(uint8Array$1, js.Value), src);
176588
- $s = -1; return uint8Array$1;
176589
- /* */ } return; } var $f = {$blk: uint8Array, $c: true, $r, _r, src, uint8Array$1, $s};return $f;
176590
- };
176591
- WebSocket.methods = [{prop: "setBinaryType", name: "setBinaryType", pkg: "nhooyr.io/websocket/internal/wsjs", typ: $funcType([$String], [], false)}, {prop: "addEventListener", name: "addEventListener", pkg: "nhooyr.io/websocket/internal/wsjs", typ: $funcType([$String, funcType$1], [funcType], false)}, {prop: "OnClose", name: "OnClose", pkg: "", typ: $funcType([funcType$2], [funcType], false)}, {prop: "OnError", name: "OnError", pkg: "", typ: $funcType([funcType$1], [funcType], false)}, {prop: "OnMessage", name: "OnMessage", pkg: "", typ: $funcType([funcType$3], [funcType], false)}, {prop: "Subprotocol", name: "Subprotocol", pkg: "", typ: $funcType([], [$String], false)}, {prop: "OnOpen", name: "OnOpen", pkg: "", typ: $funcType([funcType$1], [funcType], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([$Int, $String], [$error], false)}, {prop: "SendText", name: "SendText", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "SendBytes", name: "SendBytes", pkg: "", typ: $funcType([sliceType$1], [$error], false)}];
176592
- WebSocket.init("nhooyr.io/websocket/internal/wsjs", [{prop: "v", name: "v", embedded: false, exported: false, typ: js.Value, tag: ""}]);
176593
- CloseEvent.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Reason", name: "Reason", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "WasClean", name: "WasClean", embedded: false, exported: true, typ: $Bool, tag: ""}]);
176594
- MessageEvent.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: $emptyInterface, tag: ""}]);
176595
- $init = function() {
176596
- $pkg.$init = function() {};
176597
- /* */ 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:
176598
- $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176599
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
176600
- };
176601
- $pkg.$init = $init;
176602
- return $pkg;
176603
- })();
176604
- $packages["nhooyr.io/websocket/internal/xsync"] = (function() {
176605
- var $pkg = {}, $init, fmt, atomic, Int64, ptrType;
176606
- fmt = $packages["fmt"];
176607
- atomic = $packages["sync/atomic"];
176608
- Int64 = $pkg.Int64 = $newType(0, $kindStruct, "xsync.Int64", true, "nhooyr.io/websocket/internal/xsync", true, function(i_) {
176609
- this.$val = this;
176610
- if (arguments.length === 0) {
176611
- this.i = new atomic.Value.ptr($ifaceNil);
176612
- return;
176613
- }
176614
- this.i = i_;
176615
- });
176616
- ptrType = $ptrType(Int64);
176617
- Int64.ptr.prototype.Load = function() {
176618
- var _tuple, i, v;
176619
- v = this;
176620
- _tuple = $assertType(v.i.Load(), $Int64, true);
176621
- i = _tuple[0];
176622
- return i;
176623
- };
176624
- Int64.prototype.Load = function() { return this.$val.Load(); };
176625
- Int64.ptr.prototype.Store = function(i) {
176626
- var i, v;
176627
- v = this;
176628
- v.i.Store(i);
176629
- };
176630
- Int64.prototype.Store = function(i) { return this.$val.Store(i); };
176631
- ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int64], [], false)}];
176632
- Int64.init("nhooyr.io/websocket/internal/xsync", [{prop: "i", name: "i", embedded: false, exported: false, typ: atomic.Value, tag: ""}]);
176633
- $init = function() {
176634
- $pkg.$init = function() {};
176635
- /* */ 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:
176636
- $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176637
- $r = atomic.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176638
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
176639
- };
176640
- $pkg.$init = $init;
176641
- return $pkg;
176642
- })();
176643
- $packages["nhooyr.io/websocket"] = (function() {
176644
- var $pkg = {}, $init, bufio, bytes, context, binary, errors, fmt, io, math, bits, net, http, bpool, errd, wsjs, xsync, reflect, runtime, strconv, strings, sync, js, time, Conn, DialOptions, writer, MessageType, StatusCode, CloseError, ptrType, sliceType, structType, funcType, sliceType$1, ptrType$2, ptrType$3, sliceType$2, funcType$1, arrayType, sliceType$3, ptrType$4, ptrType$5, ptrType$6, chanType, _MessageType_index, _StatusCode_index, Dial, dial;
176645
- bufio = $packages["bufio"];
176657
+ $packages["github.com/coder/websocket"] = (function() {
176658
+ var $pkg = {}, $init, bytes, context, binary, errors, fmt, bpool, wsjs, xsync, io, math, bits, net, http, reflect, runtime, strconv, strings, sync, atomic, js, time, Conn, DialOptions, writer, StatusCode, CloseError, MessageType, noCopy, ptrType, sliceType, structType, funcType, sliceType$1, ptrType$3, ptrType$4, sliceType$2, funcType$1, arrayType, sliceType$3, ptrType$5, ptrType$6, ptrType$7, chanType, ptrType$9, ptrType$10, _MessageType_index, _StatusCode_index, Dial, dial;
176646
176659
  bytes = $packages["bytes"];
176647
176660
  context = $packages["context"];
176648
176661
  binary = $packages["encoding/binary"];
176649
176662
  errors = $packages["errors"];
176650
176663
  fmt = $packages["fmt"];
176664
+ bpool = $packages["github.com/coder/websocket/internal/bpool"];
176665
+ wsjs = $packages["github.com/coder/websocket/internal/wsjs"];
176666
+ xsync = $packages["github.com/coder/websocket/internal/xsync"];
176651
176667
  io = $packages["io"];
176652
176668
  math = $packages["math"];
176653
176669
  bits = $packages["math/bits"];
176654
176670
  net = $packages["net"];
176655
176671
  http = $packages["net/http"];
176656
- bpool = $packages["nhooyr.io/websocket/internal/bpool"];
176657
- errd = $packages["nhooyr.io/websocket/internal/errd"];
176658
- wsjs = $packages["nhooyr.io/websocket/internal/wsjs"];
176659
- xsync = $packages["nhooyr.io/websocket/internal/xsync"];
176660
176672
  reflect = $packages["reflect"];
176661
176673
  runtime = $packages["runtime"];
176662
176674
  strconv = $packages["strconv"];
176663
176675
  strings = $packages["strings"];
176664
176676
  sync = $packages["sync"];
176677
+ atomic = $packages["sync/atomic"];
176665
176678
  js = $packages["syscall/js"];
176666
176679
  time = $packages["time"];
176667
- Conn = $pkg.Conn = $newType(0, $kindStruct, "websocket.Conn", true, "nhooyr.io/websocket", true, function(ws_, msgReadLimit_, closingMu_, isReadClosed_, closeOnce_, closed_, closeErrOnce_, closeErr_, closeWasClean_, releaseOnClose_, releaseOnMessage_, readSignal_, readBufMu_, readBuf_) {
176680
+ Conn = $pkg.Conn = $newType(0, $kindStruct, "websocket.Conn", true, "github.com/coder/websocket", true, function(noCopy_, ws_, msgReadLimit_, closeReadMu_, closeReadCtx_, closingMu_, closeOnce_, closed_, closeErrOnce_, closeErr_, closeWasClean_, releaseOnClose_, releaseOnError_, releaseOnMessage_, readSignal_, readBufMu_, readBuf_) {
176668
176681
  this.$val = this;
176669
176682
  if (arguments.length === 0) {
176683
+ this.noCopy = new noCopy.ptr();
176670
176684
  this.ws = new wsjs.WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero()));
176671
- this.msgReadLimit = new xsync.Int64.ptr(new $packages["sync/atomic"].Value.ptr($ifaceNil));
176685
+ this.msgReadLimit = new xsync.Int64.ptr(new atomic.Value.ptr($ifaceNil));
176686
+ this.closeReadMu = new sync.Mutex.ptr(0, 0);
176687
+ this.closeReadCtx = $ifaceNil;
176672
176688
  this.closingMu = new sync.Mutex.ptr(0, 0);
176673
- this.isReadClosed = new xsync.Int64.ptr(new $packages["sync/atomic"].Value.ptr($ifaceNil));
176674
176689
  this.closeOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0));
176675
176690
  this.closed = $chanNil;
176676
176691
  this.closeErrOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0));
176677
176692
  this.closeErr = $ifaceNil;
176678
176693
  this.closeWasClean = false;
176679
176694
  this.releaseOnClose = $throwNilPointerError;
176695
+ this.releaseOnError = $throwNilPointerError;
176680
176696
  this.releaseOnMessage = $throwNilPointerError;
176681
176697
  this.readSignal = $chanNil;
176682
176698
  this.readBufMu = new sync.Mutex.ptr(0, 0);
176683
176699
  this.readBuf = sliceType$3.nil;
176684
176700
  return;
176685
176701
  }
176702
+ this.noCopy = noCopy_;
176686
176703
  this.ws = ws_;
176687
176704
  this.msgReadLimit = msgReadLimit_;
176705
+ this.closeReadMu = closeReadMu_;
176706
+ this.closeReadCtx = closeReadCtx_;
176688
176707
  this.closingMu = closingMu_;
176689
- this.isReadClosed = isReadClosed_;
176690
176708
  this.closeOnce = closeOnce_;
176691
176709
  this.closed = closed_;
176692
176710
  this.closeErrOnce = closeErrOnce_;
176693
176711
  this.closeErr = closeErr_;
176694
176712
  this.closeWasClean = closeWasClean_;
176695
176713
  this.releaseOnClose = releaseOnClose_;
176714
+ this.releaseOnError = releaseOnError_;
176696
176715
  this.releaseOnMessage = releaseOnMessage_;
176697
176716
  this.readSignal = readSignal_;
176698
176717
  this.readBufMu = readBufMu_;
176699
176718
  this.readBuf = readBuf_;
176700
176719
  });
176701
- DialOptions = $pkg.DialOptions = $newType(0, $kindStruct, "websocket.DialOptions", true, "nhooyr.io/websocket", true, function(Subprotocols_) {
176720
+ DialOptions = $pkg.DialOptions = $newType(0, $kindStruct, "websocket.DialOptions", true, "github.com/coder/websocket", true, function(Subprotocols_) {
176702
176721
  this.$val = this;
176703
176722
  if (arguments.length === 0) {
176704
176723
  this.Subprotocols = sliceType$2.nil;
@@ -176706,14 +176725,14 @@ $packages["nhooyr.io/websocket"] = (function() {
176706
176725
  }
176707
176726
  this.Subprotocols = Subprotocols_;
176708
176727
  });
176709
- writer = $pkg.writer = $newType(0, $kindStruct, "websocket.writer", true, "nhooyr.io/websocket", false, function(closed_, c_, ctx_, typ_, b_) {
176728
+ writer = $pkg.writer = $newType(0, $kindStruct, "websocket.writer", true, "github.com/coder/websocket", false, function(closed_, c_, ctx_, typ_, b_) {
176710
176729
  this.$val = this;
176711
176730
  if (arguments.length === 0) {
176712
176731
  this.closed = false;
176713
176732
  this.c = ptrType.nil;
176714
176733
  this.ctx = $ifaceNil;
176715
176734
  this.typ = 0;
176716
- this.b = ptrType$6.nil;
176735
+ this.b = ptrType$7.nil;
176717
176736
  return;
176718
176737
  }
176719
176738
  this.closed = closed_;
@@ -176722,9 +176741,8 @@ $packages["nhooyr.io/websocket"] = (function() {
176722
176741
  this.typ = typ_;
176723
176742
  this.b = b_;
176724
176743
  });
176725
- MessageType = $pkg.MessageType = $newType(4, $kindInt, "websocket.MessageType", true, "nhooyr.io/websocket", true, null);
176726
- StatusCode = $pkg.StatusCode = $newType(4, $kindInt, "websocket.StatusCode", true, "nhooyr.io/websocket", true, null);
176727
- CloseError = $pkg.CloseError = $newType(0, $kindStruct, "websocket.CloseError", true, "nhooyr.io/websocket", true, function(Code_, Reason_) {
176744
+ StatusCode = $pkg.StatusCode = $newType(4, $kindInt, "websocket.StatusCode", true, "github.com/coder/websocket", true, null);
176745
+ CloseError = $pkg.CloseError = $newType(0, $kindStruct, "websocket.CloseError", true, "github.com/coder/websocket", true, function(Code_, Reason_) {
176728
176746
  this.$val = this;
176729
176747
  if (arguments.length === 0) {
176730
176748
  this.Code = 0;
@@ -176734,21 +176752,30 @@ $packages["nhooyr.io/websocket"] = (function() {
176734
176752
  this.Code = Code_;
176735
176753
  this.Reason = Reason_;
176736
176754
  });
176755
+ MessageType = $pkg.MessageType = $newType(4, $kindInt, "websocket.MessageType", true, "github.com/coder/websocket", true, null);
176756
+ noCopy = $pkg.noCopy = $newType(0, $kindStruct, "websocket.noCopy", true, "github.com/coder/websocket", false, function() {
176757
+ this.$val = this;
176758
+ if (arguments.length === 0) {
176759
+ return;
176760
+ }
176761
+ });
176737
176762
  ptrType = $ptrType(Conn);
176738
176763
  sliceType = $sliceType($emptyInterface);
176739
176764
  structType = $structType("", []);
176740
176765
  funcType = $funcType([ptrType], [], false);
176741
176766
  sliceType$1 = $sliceType($Uint8);
176742
- ptrType$2 = $ptrType(http.Response);
176743
- ptrType$3 = $ptrType(DialOptions);
176767
+ ptrType$3 = $ptrType(http.Response);
176768
+ ptrType$4 = $ptrType(DialOptions);
176744
176769
  sliceType$2 = $sliceType($String);
176745
176770
  funcType$1 = $funcType([], [], false);
176746
176771
  arrayType = $arrayType(funcType$1, 0);
176747
176772
  sliceType$3 = $sliceType(wsjs.MessageEvent);
176748
- ptrType$4 = $ptrType(http.Request);
176749
- ptrType$5 = $ptrType($packages["crypto/tls"].ConnectionState);
176750
- ptrType$6 = $ptrType(bytes.Buffer);
176773
+ ptrType$5 = $ptrType(http.Request);
176774
+ ptrType$6 = $ptrType($packages["crypto/tls"].ConnectionState);
176775
+ ptrType$7 = $ptrType(bytes.Buffer);
176751
176776
  chanType = $chanType(structType, false, false);
176777
+ ptrType$9 = $ptrType(writer);
176778
+ ptrType$10 = $ptrType(noCopy);
176752
176779
  Conn.ptr.prototype.close = function(err, wasClean) {
176753
176780
  var {c, err, wasClean, $s, $r, $c} = $restore(this, {err, wasClean});
176754
176781
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -176777,7 +176804,7 @@ $packages["nhooyr.io/websocket"] = (function() {
176777
176804
  };
176778
176805
  Conn.prototype.close = function(err, wasClean) { return this.$val.close(err, wasClean); };
176779
176806
  Conn.ptr.prototype.init = function() {
176780
- var {_r, _r$1, c, $s, $r, $c} = $restore(this, {});
176807
+ var {_r, _r$1, _r$2, c, $s, $r, $c} = $restore(this, {});
176781
176808
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176782
176809
  c = [c];
176783
176810
  c[0] = this;
@@ -176790,12 +176817,22 @@ $packages["nhooyr.io/websocket"] = (function() {
176790
176817
  err = new CloseError.ptr(((e.Code >> 0)), e.Reason);
176791
176818
  $r = c[0].close(new err.constructor.elem(err), e.WasClean); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176792
176819
  $r = c[0].releaseOnClose(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176793
- $r = c[0].releaseOnMessage(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176820
+ $r = c[0].releaseOnError(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176821
+ $r = c[0].releaseOnMessage(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176794
176822
  $s = -1; return;
176795
176823
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, e, err, $s};return $f;
176796
176824
  }; })(c)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176797
176825
  c[0].releaseOnClose = _r;
176798
- _r$1 = $clone(c[0].ws, wsjs.WebSocket).OnMessage((function(c) { return function $b(e) {
176826
+ _r$1 = $clone(c[0].ws, wsjs.WebSocket).OnError((function(c) { return function $b(v) {
176827
+ var {v, $s, $r, $c} = $restore(this, {v});
176828
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176829
+ $r = c[0].setCloseErr(errors.New($clone($clone(v, js.Value).Get("message"), js.Value).String())); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176830
+ $r = c[0].closeWithInternal(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176831
+ $s = -1; return;
176832
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, v, $s};return $f;
176833
+ }; })(c)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
176834
+ c[0].releaseOnError = _r$1;
176835
+ _r$2 = $clone(c[0].ws, wsjs.WebSocket).OnMessage((function(c) { return function $b(e) {
176799
176836
  var {_selection, e, $s, $deferred, $r, $c} = $restore(this, {e});
176800
176837
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
176801
176838
  $r = c[0].readBufMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -176807,8 +176844,8 @@ $packages["nhooyr.io/websocket"] = (function() {
176807
176844
  }
176808
176845
  $s = -1; return;
176809
176846
  /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: $b, $c: true, $r, _selection, e, $s, $deferred};return $f; } }
176810
- }; })(c)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
176811
- c[0].releaseOnMessage = _r$1;
176847
+ }; })(c)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
176848
+ c[0].releaseOnMessage = _r$2;
176812
176849
  runtime.SetFinalizer(c[0], new funcType((function(c) { return function $b(c$1) {
176813
176850
  var {c$1, $s, $r, $c} = $restore(this, {c$1});
176814
176851
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -176818,7 +176855,7 @@ $packages["nhooyr.io/websocket"] = (function() {
176818
176855
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, c$1, $s};return $f;
176819
176856
  }; })(c)));
176820
176857
  $s = -1; return;
176821
- /* */ } return; } var $f = {$blk: Conn.ptr.prototype.init, $c: true, $r, _r, _r$1, c, $s};return $f;
176858
+ /* */ } return; } var $f = {$blk: Conn.ptr.prototype.init, $c: true, $r, _r, _r$1, _r$2, c, $s};return $f;
176822
176859
  };
176823
176860
  Conn.prototype.init = function() { return this.$val.init(); };
176824
176861
  Conn.ptr.prototype.closeWithInternal = function() {
@@ -176832,37 +176869,41 @@ $packages["nhooyr.io/websocket"] = (function() {
176832
176869
  };
176833
176870
  Conn.prototype.closeWithInternal = function() { return this.$val.closeWithInternal(); };
176834
176871
  Conn.ptr.prototype.Read = function(ctx) {
176835
- var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _tuple, c, ctx, err, err$1, p, typ, x, x$1, x$2, $s, $r, $c} = $restore(this, {ctx});
176872
+ var {$24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _tuple, c, closedRead, ctx, err, err$1, p, readLimit, typ, x, $s, $r, $c} = $restore(this, {ctx});
176836
176873
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176837
176874
  c = this;
176838
- if ((x = c.isReadClosed.Load(), (x.$high === 0 && x.$low === 1))) {
176875
+ $r = c.closeReadMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176876
+ closedRead = !($interfaceIsEqual(c.closeReadCtx, $ifaceNil));
176877
+ $r = c.closeReadMu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
176878
+ if (closedRead) {
176839
176879
  $s = -1; return [0, sliceType$1.nil, errors.New("WebSocket connection read closed")];
176840
176880
  }
176841
- _r = c.read(ctx); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176881
+ _r = c.read(ctx); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
176842
176882
  _tuple = _r;
176843
176883
  typ = _tuple[0];
176844
176884
  p = _tuple[1];
176845
176885
  err = _tuple[2];
176846
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
176847
- /* */ $s = 3; continue;
176848
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
176849
- _r$1 = fmt.Errorf("failed to read: %w", new sliceType([err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
176886
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
176887
+ /* */ $s = 5; continue;
176888
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
176889
+ _r$1 = fmt.Errorf("failed to read: %w", new sliceType([err])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
176850
176890
  $24r = [0, sliceType$1.nil, _r$1];
176851
- $s = 5; case 5: return $24r;
176852
- /* } */ case 3:
176853
- /* */ if ((x$1 = (new $Int64(0, p.$length)), x$2 = c.msgReadLimit.Load(), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { $s = 6; continue; }
176854
- /* */ $s = 7; continue;
176855
- /* if ((x$1 = (new $Int64(0, p.$length)), x$2 = c.msgReadLimit.Load(), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { */ case 6:
176856
- _r$2 = fmt.Errorf("read limited at %v bytes", new sliceType([c.msgReadLimit.Load()])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
176891
+ $s = 7; case 7: return $24r;
176892
+ /* } */ case 5:
176893
+ readLimit = c.msgReadLimit.Load();
176894
+ /* */ if ((readLimit.$high > 0 || (readLimit.$high === 0 && readLimit.$low >= 0)) && (x = (new $Int64(0, p.$length)), (x.$high > readLimit.$high || (x.$high === readLimit.$high && x.$low > readLimit.$low)))) { $s = 8; continue; }
176895
+ /* */ $s = 9; continue;
176896
+ /* if ((readLimit.$high > 0 || (readLimit.$high === 0 && readLimit.$low >= 0)) && (x = (new $Int64(0, p.$length)), (x.$high > readLimit.$high || (x.$high === readLimit.$high && x.$low > readLimit.$low)))) { */ case 8:
176897
+ _r$2 = fmt.Errorf("read limited at %v bytes", new sliceType([c.msgReadLimit.Load()])); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
176857
176898
  err$1 = _r$2;
176858
- _r$3 = err$1.Error(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
176899
+ _r$3 = err$1.Error(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
176859
176900
  _arg = _r$3;
176860
- _r$4 = c.Close(1009, _arg); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
176901
+ _r$4 = c.Close(1009, _arg); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
176861
176902
  _r$4;
176862
176903
  $s = -1; return [0, sliceType$1.nil, err$1];
176863
- /* } */ case 7:
176904
+ /* } */ case 9:
176864
176905
  $s = -1; return [typ, p, $ifaceNil];
176865
- /* */ } return; } var $f = {$blk: Conn.ptr.prototype.Read, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _tuple, c, ctx, err, err$1, p, typ, x, x$1, x$2, $s};return $f;
176906
+ /* */ } return; } var $f = {$blk: Conn.ptr.prototype.Read, $c: true, $r, $24r, _arg, _r, _r$1, _r$2, _r$3, _r$4, _tuple, c, closedRead, ctx, err, err$1, p, readLimit, typ, x, $s};return $f;
176866
176907
  };
176867
176908
  Conn.prototype.Read = function(ctx) { return this.$val.Read(ctx); };
176868
176909
  Conn.ptr.prototype.read = function(ctx) {
@@ -176885,7 +176926,7 @@ $packages["nhooyr.io/websocket"] = (function() {
176885
176926
  /* } else if (_selection[0] === 1) { */ case 4:
176886
176927
  $s = 6; continue;
176887
176928
  /* } else if (_selection[0] === 2) { */ case 5:
176888
- $24r$1 = [0, sliceType$1.nil, c.closeErr];
176929
+ $24r$1 = [0, sliceType$1.nil, net.ErrClosed];
176889
176930
  $s = 10; case 10: return $24r$1;
176890
176931
  /* } */ case 6:
176891
176932
  $r = c.readBufMu.Lock(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -176952,7 +176993,7 @@ $packages["nhooyr.io/websocket"] = (function() {
176952
176993
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
176953
176994
  c = this;
176954
176995
  if (c.isClosed()) {
176955
- $s = -1; return c.closeErr;
176996
+ $s = -1; return net.ErrClosed;
176956
176997
  }
176957
176998
  _1 = typ;
176958
176999
  /* */ if (_1 === (2)) { $s = 2; continue; }
@@ -176993,41 +177034,50 @@ $packages["nhooyr.io/websocket"] = (function() {
176993
177034
  /* */ } return; } var $f = {$blk: Conn.ptr.prototype.Close, $c: true, $r, $24r, _r, _r$1, c, code, err, reason, $s};return $f;
176994
177035
  };
176995
177036
  Conn.prototype.Close = function(code, reason) { return this.$val.Close(code, reason); };
177037
+ Conn.ptr.prototype.CloseNow = function() {
177038
+ var {$24r, _r, c, $s, $r, $c} = $restore(this, {});
177039
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
177040
+ c = this;
177041
+ _r = c.Close(1001, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
177042
+ $24r = _r;
177043
+ $s = 2; case 2: return $24r;
177044
+ /* */ } return; } var $f = {$blk: Conn.ptr.prototype.CloseNow, $c: true, $r, $24r, _r, c, $s};return $f;
177045
+ };
177046
+ Conn.prototype.CloseNow = function() { return this.$val.CloseNow(); };
176996
177047
  Conn.ptr.prototype.exportedClose = function(code, reason) {
176997
- var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, c, ce, code, err, reason, x, $s, $deferred, $r, $c} = $restore(this, {code, reason});
177048
+ var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, c, ce, code, err, reason, x, $s, $deferred, $r, $c} = $restore(this, {code, reason});
176998
177049
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
176999
177050
  c = this;
177000
177051
  $r = c.closingMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177001
177052
  $deferred.push([$methodVal(c.closingMu, "Unlock"), []]);
177002
- _r = fmt.Errorf("sent close: %w", new sliceType([(x = new CloseError.ptr(code, reason), new x.constructor.elem(x))])); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
177053
+ /* */ if (c.isClosed()) { $s = 2; continue; }
177054
+ /* */ $s = 3; continue;
177055
+ /* if (c.isClosed()) { */ case 2:
177056
+ $24r = net.ErrClosed;
177057
+ $s = 4; case 4: return $24r;
177058
+ /* } */ case 3:
177059
+ _r = fmt.Errorf("sent close: %w", new sliceType([(x = new CloseError.ptr(code, reason), new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
177003
177060
  ce = _r;
177004
- /* */ if (c.isClosed()) { $s = 3; continue; }
177005
- /* */ $s = 4; continue;
177006
- /* if (c.isClosed()) { */ case 3:
177007
- _r$1 = fmt.Errorf("tried to close with %q but connection already closed: %w", new sliceType([ce, c.closeErr])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
177008
- $24r = _r$1;
177009
- $s = 6; case 6: return $24r;
177010
- /* } */ case 4:
177011
- $r = c.setCloseErr(ce); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177012
- _r$2 = $clone(c.ws, wsjs.WebSocket).Close(((code >> 0)), reason); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
177013
- err = _r$2;
177014
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 9; continue; }
177015
- /* */ $s = 10; continue;
177016
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 9:
177061
+ $r = c.setCloseErr(ce); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177062
+ _r$1 = $clone(c.ws, wsjs.WebSocket).Close(((code >> 0)), reason); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
177063
+ err = _r$1;
177064
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; }
177065
+ /* */ $s = 9; continue;
177066
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8:
177017
177067
  $24r$1 = err;
177018
- $s = 11; case 11: return $24r$1;
177019
- /* } */ case 10:
177020
- _r$3 = $recv(c.closed); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
177021
- _r$3[0];
177022
- /* */ if (!c.closeWasClean) { $s = 13; continue; }
177023
- /* */ $s = 14; continue;
177024
- /* if (!c.closeWasClean) { */ case 13:
177068
+ $s = 10; case 10: return $24r$1;
177069
+ /* } */ case 9:
177070
+ _r$2 = $recv(c.closed); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
177071
+ _r$2[0];
177072
+ /* */ if (!c.closeWasClean) { $s = 12; continue; }
177073
+ /* */ $s = 13; continue;
177074
+ /* if (!c.closeWasClean) { */ case 12:
177025
177075
  $24r$2 = c.closeErr;
177026
- $s = 15; case 15: return $24r$2;
177027
- /* } */ case 14:
177076
+ $s = 14; case 14: return $24r$2;
177077
+ /* } */ case 13:
177028
177078
  $24r$3 = $ifaceNil;
177029
- $s = 16; case 16: return $24r$3;
177030
- /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Conn.ptr.prototype.exportedClose, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, c, ce, code, err, reason, x, $s, $deferred};return $f; } }
177079
+ $s = 15; case 15: return $24r$3;
177080
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Conn.ptr.prototype.exportedClose, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, c, ce, code, err, reason, x, $s, $deferred};return $f; } }
177031
177081
  };
177032
177082
  Conn.prototype.exportedClose = function(code, reason) { return this.$val.exportedClose(code, reason); };
177033
177083
  Conn.ptr.prototype.Subprotocol = function() {
@@ -177048,7 +177098,7 @@ $packages["nhooyr.io/websocket"] = (function() {
177048
177098
  /* */ $s = 3; continue;
177049
177099
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
177050
177100
  _r$1 = fmt.Errorf("failed to WebSocket dial %q: %w", new sliceType([new $String(url), err])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
177051
- $24r = [ptrType.nil, ptrType$2.nil, _r$1];
177101
+ $24r = [ptrType.nil, ptrType$3.nil, _r$1];
177052
177102
  $s = 5; case 5: return $24r;
177053
177103
  /* } */ case 3:
177054
177104
  $s = -1; return [c, resp, $ifaceNil];
@@ -177059,7 +177109,7 @@ $packages["nhooyr.io/websocket"] = (function() {
177059
177109
  var {$24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _selection, _tuple, c, ctx, err, opench, opts, releaseOpen, url, ws, $s, $deferred, $r, $c} = $restore(this, {ctx, url, opts});
177060
177110
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
177061
177111
  opench = [opench];
177062
- if (opts === ptrType$3.nil) {
177112
+ if (opts === ptrType$4.nil) {
177063
177113
  opts = new DialOptions.ptr(sliceType$2.nil);
177064
177114
  }
177065
177115
  url = strings.Replace(url, "http://", "ws://", 1);
@@ -177071,18 +177121,15 @@ $packages["nhooyr.io/websocket"] = (function() {
177071
177121
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
177072
177122
  /* */ $s = 3; continue;
177073
177123
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
177074
- $24r = [ptrType.nil, ptrType$2.nil, err];
177124
+ $24r = [ptrType.nil, ptrType$3.nil, err];
177075
177125
  $s = 4; case 4: return $24r;
177076
177126
  /* } */ case 3:
177077
- c = new Conn.ptr($clone(ws, wsjs.WebSocket), new xsync.Int64.ptr(new $packages["sync/atomic"].Value.ptr($ifaceNil)), new sync.Mutex.ptr(0, 0), new xsync.Int64.ptr(new $packages["sync/atomic"].Value.ptr($ifaceNil)), new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), $chanNil, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), $ifaceNil, false, $throwNilPointerError, $throwNilPointerError, $chanNil, new sync.Mutex.ptr(0, 0), sliceType$3.nil);
177127
+ c = new Conn.ptr(new noCopy.ptr(), $clone(ws, wsjs.WebSocket), new xsync.Int64.ptr(new atomic.Value.ptr($ifaceNil)), new sync.Mutex.ptr(0, 0), $ifaceNil, new sync.Mutex.ptr(0, 0), new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), $chanNil, new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0)), $ifaceNil, false, $throwNilPointerError, $throwNilPointerError, $throwNilPointerError, $chanNil, new sync.Mutex.ptr(0, 0), sliceType$3.nil);
177078
177128
  $r = c.init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177079
177129
  opench[0] = new $Chan(structType, 0);
177080
- _r$1 = $clone(ws, wsjs.WebSocket).OnOpen((function(opench) { return function $b(e) {
177081
- var {e, $s, $r, $c} = $restore(this, {e});
177082
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
177083
- $r = $send(opench[0], $clone($clone(new structType.ptr(), structType), structType)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177084
- $s = -1; return;
177085
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, e, $s};return $f;
177130
+ _r$1 = $clone(ws, wsjs.WebSocket).OnOpen((function(opench) { return function(e) {
177131
+ var e;
177132
+ $close(opench[0]);
177086
177133
  }; })(opench)); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
177087
177134
  releaseOpen = _r$1;
177088
177135
  $deferred.push([releaseOpen, []]);
@@ -177097,17 +177144,17 @@ $packages["nhooyr.io/websocket"] = (function() {
177097
177144
  _r$4 = c.Close(1008, "dial timed out"); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
177098
177145
  _r$4;
177099
177146
  _r$5 = ctx.Err(); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
177100
- $24r$1 = [ptrType.nil, ptrType$2.nil, _r$5];
177147
+ $24r$1 = [ptrType.nil, ptrType$3.nil, _r$5];
177101
177148
  $s = 15; case 15: return $24r$1;
177102
177149
  /* } else if (_selection[0] === 1) { */ case 10:
177103
- $24r$2 = [c, new http.Response.ptr("", 101, "", 0, 0, false, $ifaceNil, new $Int64(0, 0), sliceType$2.nil, false, false, false, ptrType$4.nil, ptrType$5.nil), $ifaceNil];
177150
+ $24r$2 = [c, new http.Response.ptr("", 101, "", 0, 0, false, $ifaceNil, new $Int64(0, 0), sliceType$2.nil, false, false, false, ptrType$5.nil, ptrType$6.nil), $ifaceNil];
177104
177151
  $s = 16; case 16: return $24r$2;
177105
177152
  /* } else if (_selection[0] === 2) { */ case 11:
177106
- $24r$3 = [ptrType.nil, ptrType$2.nil, c.closeErr];
177153
+ $24r$3 = [ptrType.nil, ptrType$3.nil, net.ErrClosed];
177107
177154
  $s = 17; case 17: return $24r$3;
177108
177155
  /* } */ case 12:
177109
- $s = -1; return [ptrType.nil, ptrType$2.nil, $ifaceNil];
177110
- /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType.nil, ptrType$2.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dial, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _selection, _tuple, c, ctx, err, opench, opts, releaseOpen, url, ws, $s, $deferred};return $f; } }
177156
+ $s = -1; return [ptrType.nil, ptrType$3.nil, $ifaceNil];
177157
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType.nil, ptrType$3.nil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: dial, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _selection, _tuple, c, ctx, err, opench, opts, releaseOpen, url, ws, $s, $deferred};return $f; } }
177111
177158
  };
177112
177159
  Conn.ptr.prototype.Reader = function(ctx) {
177113
177160
  var {_r, _tuple, c, ctx, err, p, typ, $s, $r, $c} = $restore(this, {ctx});
@@ -177126,13 +177173,13 @@ $packages["nhooyr.io/websocket"] = (function() {
177126
177173
  };
177127
177174
  Conn.prototype.Reader = function(ctx) { return this.$val.Reader(ctx); };
177128
177175
  Conn.ptr.prototype.Writer = function(ctx, typ) {
177129
- var {$24r, _r, c, ctx, typ, x, $s, $r, $c} = $restore(this, {ctx, typ});
177176
+ var {$24r, _r, c, ctx, typ, $s, $r, $c} = $restore(this, {ctx, typ});
177130
177177
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
177131
177178
  c = this;
177132
177179
  _r = bpool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
177133
- $24r = [(x = new writer.ptr(false, c, ctx, typ, _r), new x.constructor.elem(x)), $ifaceNil];
177180
+ $24r = [new writer.ptr(false, c, ctx, typ, _r), $ifaceNil];
177134
177181
  $s = 2; case 2: return $24r;
177135
- /* */ } return; } var $f = {$blk: Conn.ptr.prototype.Writer, $c: true, $r, $24r, _r, c, ctx, typ, x, $s};return $f;
177182
+ /* */ } return; } var $f = {$blk: Conn.ptr.prototype.Writer, $c: true, $r, $24r, _r, c, ctx, typ, $s};return $f;
177136
177183
  };
177137
177184
  Conn.prototype.Writer = function(ctx, typ) { return this.$val.Writer(ctx, typ); };
177138
177185
  writer.ptr.prototype.Write = function(p) {
@@ -177184,30 +177231,45 @@ $packages["nhooyr.io/websocket"] = (function() {
177184
177231
  };
177185
177232
  writer.prototype.Close = function() { return this.$val.Close(); };
177186
177233
  Conn.ptr.prototype.CloseRead = function(ctx) {
177187
- var {_r, _tuple, c, cancel, ctx, $s, $r, $c} = $restore(this, {ctx});
177234
+ var {_r, _tuple, c, cancel, ctx, ctx2, $s, $r, $c} = $restore(this, {ctx});
177188
177235
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
177189
177236
  c = [c];
177190
177237
  cancel = [cancel];
177191
177238
  ctx = [ctx];
177192
177239
  c[0] = this;
177193
- c[0].isReadClosed.Store(new $Int64(0, 1));
177194
- _r = context.WithCancel(ctx[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
177240
+ $r = c[0].closeReadMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177241
+ ctx2 = c[0].closeReadCtx;
177242
+ /* */ if (!($interfaceIsEqual(ctx2, $ifaceNil))) { $s = 2; continue; }
177243
+ /* */ $s = 3; continue;
177244
+ /* if (!($interfaceIsEqual(ctx2, $ifaceNil))) { */ case 2:
177245
+ $r = c[0].closeReadMu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177246
+ $s = -1; return ctx2;
177247
+ /* } */ case 3:
177248
+ _r = context.WithCancel(ctx[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
177195
177249
  _tuple = _r;
177196
177250
  ctx[0] = _tuple[0];
177197
177251
  cancel[0] = _tuple[1];
177252
+ c[0].closeReadCtx = ctx[0];
177253
+ $r = c[0].closeReadMu.Unlock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177198
177254
  $go((function(c, cancel, ctx) { return function $b() {
177199
- var {_r$1, _r$2, $s, $deferred, $r, $c} = $restore(this, {});
177255
+ var {_r$1, _r$2, _tuple$1, err, $s, $deferred, $r, $c} = $restore(this, {});
177200
177256
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
177201
177257
  $deferred.push([cancel[0], []]);
177258
+ $deferred.push([$methodVal(c[0], "CloseNow"), []]);
177202
177259
  _r$1 = c[0].read(ctx[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
177203
- _r$1;
177204
- _r$2 = c[0].Close(1008, "unexpected data message"); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
177205
- _r$2;
177260
+ _tuple$1 = _r$1;
177261
+ err = _tuple$1[2];
177262
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
177263
+ /* */ $s = 3; continue;
177264
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
177265
+ _r$2 = c[0].Close(1008, "unexpected data message"); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
177266
+ _r$2;
177267
+ /* } */ case 3:
177206
177268
  $s = -1; return;
177207
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: $b, $c: true, $r, _r$1, _r$2, $s, $deferred};return $f; } }
177269
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: $b, $c: true, $r, _r$1, _r$2, _tuple$1, err, $s, $deferred};return $f; } }
177208
177270
  }; })(c, cancel, ctx), []);
177209
177271
  $s = -1; return ctx[0];
177210
- /* */ } return; } var $f = {$blk: Conn.ptr.prototype.CloseRead, $c: true, $r, _r, _tuple, c, cancel, ctx, $s};return $f;
177272
+ /* */ } return; } var $f = {$blk: Conn.ptr.prototype.CloseRead, $c: true, $r, _r, _tuple, c, cancel, ctx, ctx2, $s};return $f;
177211
177273
  };
177212
177274
  Conn.prototype.CloseRead = function(ctx) { return this.$val.CloseRead(ctx); };
177213
177275
  Conn.ptr.prototype.SetReadLimit = function(n) {
@@ -177245,6 +177307,19 @@ $packages["nhooyr.io/websocket"] = (function() {
177245
177307
  }
177246
177308
  };
177247
177309
  Conn.prototype.isClosed = function() { return this.$val.isClosed(); };
177310
+ CloseError.ptr.prototype.Error = function() {
177311
+ var {$24r, _r, ce, $s, $r, $c} = $restore(this, {});
177312
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
177313
+ ce = this;
177314
+ _r = fmt.Sprintf("status = %v and reason = %q", new sliceType([new StatusCode(ce.Code), new $String(ce.Reason)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
177315
+ $24r = _r;
177316
+ $s = 2; case 2: return $24r;
177317
+ /* */ } return; } var $f = {$blk: CloseError.ptr.prototype.Error, $c: true, $r, $24r, _r, ce, $s};return $f;
177318
+ };
177319
+ CloseError.prototype.Error = function() { return this.$val.Error(); };
177320
+ noCopy.ptr.prototype.Lock = function() {
177321
+ };
177322
+ noCopy.prototype.Lock = function() { return this.$val.Lock(); };
177248
177323
  MessageType.prototype.String = function() {
177249
177324
  var i, x;
177250
177325
  i = this.$val;
@@ -177265,50 +177340,41 @@ $packages["nhooyr.io/websocket"] = (function() {
177265
177340
  return $substring("StatusNormalClosureStatusGoingAwayStatusProtocolErrorStatusUnsupportedDatastatusReservedStatusNoStatusRcvdStatusAbnormalClosureStatusInvalidFramePayloadDataStatusPolicyViolationStatusMessageTooBigStatusMandatoryExtensionStatusInternalErrorStatusServiceRestartStatusTryAgainLaterStatusBadGatewayStatusTLSHandshake", ((i < 0 || i >= _StatusCode_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _StatusCode_index[i]), (x = i + 1 >> 0, ((x < 0 || x >= _StatusCode_index.length) ? ($throwRuntimeError("index out of range"), undefined) : _StatusCode_index[x])));
177266
177341
  };
177267
177342
  $ptrType(StatusCode).prototype.String = function() { return new StatusCode(this.$get()).String(); };
177268
- CloseError.ptr.prototype.Error = function() {
177269
- var {$24r, _r, ce, $s, $r, $c} = $restore(this, {});
177270
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
177271
- ce = this;
177272
- _r = fmt.Sprintf("status = %v and reason = %q", new sliceType([new StatusCode(ce.Code), new $String(ce.Reason)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
177273
- $24r = _r;
177274
- $s = 2; case 2: return $24r;
177275
- /* */ } return; } var $f = {$blk: CloseError.ptr.prototype.Error, $c: true, $r, $24r, _r, ce, $s};return $f;
177276
- };
177277
- CloseError.prototype.Error = function() { return this.$val.Error(); };
177278
- ptrType.methods = [{prop: "close", name: "close", pkg: "nhooyr.io/websocket", typ: $funcType([$error, $Bool], [], false)}, {prop: "init", name: "init", pkg: "nhooyr.io/websocket", typ: $funcType([], [], false)}, {prop: "closeWithInternal", name: "closeWithInternal", pkg: "nhooyr.io/websocket", typ: $funcType([], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([context.Context], [MessageType, sliceType$1, $error], false)}, {prop: "read", name: "read", pkg: "nhooyr.io/websocket", typ: $funcType([context.Context], [MessageType, sliceType$1, $error], false)}, {prop: "Ping", name: "Ping", pkg: "", typ: $funcType([context.Context], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([context.Context, MessageType, sliceType$1], [$error], false)}, {prop: "write", name: "write", pkg: "nhooyr.io/websocket", typ: $funcType([context.Context, MessageType, sliceType$1], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([StatusCode, $String], [$error], false)}, {prop: "exportedClose", name: "exportedClose", pkg: "nhooyr.io/websocket", typ: $funcType([StatusCode, $String], [$error], false)}, {prop: "Subprotocol", name: "Subprotocol", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Reader", name: "Reader", pkg: "", typ: $funcType([context.Context], [MessageType, io.Reader, $error], false)}, {prop: "Writer", name: "Writer", pkg: "", typ: $funcType([context.Context, MessageType], [io.WriteCloser, $error], false)}, {prop: "CloseRead", name: "CloseRead", pkg: "", typ: $funcType([context.Context], [context.Context], false)}, {prop: "SetReadLimit", name: "SetReadLimit", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "setCloseErr", name: "setCloseErr", pkg: "nhooyr.io/websocket", typ: $funcType([$error], [], false)}, {prop: "isClosed", name: "isClosed", pkg: "nhooyr.io/websocket", typ: $funcType([], [$Bool], false)}];
177279
- writer.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}];
177280
- MessageType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
177343
+ ptrType.methods = [{prop: "close", name: "close", pkg: "github.com/coder/websocket", typ: $funcType([$error, $Bool], [], false)}, {prop: "init", name: "init", pkg: "github.com/coder/websocket", typ: $funcType([], [], false)}, {prop: "closeWithInternal", name: "closeWithInternal", pkg: "github.com/coder/websocket", typ: $funcType([], [], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([context.Context], [MessageType, sliceType$1, $error], false)}, {prop: "read", name: "read", pkg: "github.com/coder/websocket", typ: $funcType([context.Context], [MessageType, sliceType$1, $error], false)}, {prop: "Ping", name: "Ping", pkg: "", typ: $funcType([context.Context], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([context.Context, MessageType, sliceType$1], [$error], false)}, {prop: "write", name: "write", pkg: "github.com/coder/websocket", typ: $funcType([context.Context, MessageType, sliceType$1], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([StatusCode, $String], [$error], false)}, {prop: "CloseNow", name: "CloseNow", pkg: "", typ: $funcType([], [$error], false)}, {prop: "exportedClose", name: "exportedClose", pkg: "github.com/coder/websocket", typ: $funcType([StatusCode, $String], [$error], false)}, {prop: "Subprotocol", name: "Subprotocol", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Reader", name: "Reader", pkg: "", typ: $funcType([context.Context], [MessageType, io.Reader, $error], false)}, {prop: "Writer", name: "Writer", pkg: "", typ: $funcType([context.Context, MessageType], [io.WriteCloser, $error], false)}, {prop: "CloseRead", name: "CloseRead", pkg: "", typ: $funcType([context.Context], [context.Context], false)}, {prop: "SetReadLimit", name: "SetReadLimit", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "setCloseErr", name: "setCloseErr", pkg: "github.com/coder/websocket", typ: $funcType([$error], [], false)}, {prop: "isClosed", name: "isClosed", pkg: "github.com/coder/websocket", typ: $funcType([], [$Bool], false)}];
177344
+ ptrType$9.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}];
177281
177345
  StatusCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
177282
177346
  CloseError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
177283
- Conn.init("nhooyr.io/websocket", [{prop: "ws", name: "ws", embedded: false, exported: false, typ: wsjs.WebSocket, tag: ""}, {prop: "msgReadLimit", name: "msgReadLimit", embedded: false, exported: false, typ: xsync.Int64, tag: ""}, {prop: "closingMu", name: "closingMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "isReadClosed", name: "isReadClosed", embedded: false, exported: false, typ: xsync.Int64, tag: ""}, {prop: "closeOnce", name: "closeOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "closeErrOnce", name: "closeErrOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "closeErr", name: "closeErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "closeWasClean", name: "closeWasClean", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "releaseOnClose", name: "releaseOnClose", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "releaseOnMessage", name: "releaseOnMessage", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "readSignal", name: "readSignal", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "readBufMu", name: "readBufMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "readBuf", name: "readBuf", embedded: false, exported: false, typ: sliceType$3, tag: ""}]);
177347
+ MessageType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
177348
+ ptrType$10.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}];
177349
+ Conn.init("github.com/coder/websocket", [{prop: "noCopy", name: "noCopy", embedded: false, exported: false, typ: noCopy, tag: ""}, {prop: "ws", name: "ws", embedded: false, exported: false, typ: wsjs.WebSocket, tag: ""}, {prop: "msgReadLimit", name: "msgReadLimit", embedded: false, exported: false, typ: xsync.Int64, tag: ""}, {prop: "closeReadMu", name: "closeReadMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "closeReadCtx", name: "closeReadCtx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "closingMu", name: "closingMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "closeOnce", name: "closeOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "closed", name: "closed", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "closeErrOnce", name: "closeErrOnce", embedded: false, exported: false, typ: sync.Once, tag: ""}, {prop: "closeErr", name: "closeErr", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "closeWasClean", name: "closeWasClean", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "releaseOnClose", name: "releaseOnClose", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "releaseOnError", name: "releaseOnError", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "releaseOnMessage", name: "releaseOnMessage", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "readSignal", name: "readSignal", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "readBufMu", name: "readBufMu", embedded: false, exported: false, typ: sync.Mutex, tag: ""}, {prop: "readBuf", name: "readBuf", embedded: false, exported: false, typ: sliceType$3, tag: ""}]);
177284
177350
  DialOptions.init("", [{prop: "Subprotocols", name: "Subprotocols", embedded: false, exported: true, typ: sliceType$2, tag: ""}]);
177285
- writer.init("nhooyr.io/websocket", [{prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "c", name: "c", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: MessageType, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: ptrType$6, tag: ""}]);
177351
+ writer.init("github.com/coder/websocket", [{prop: "closed", name: "closed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "c", name: "c", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "ctx", name: "ctx", embedded: false, exported: false, typ: context.Context, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: MessageType, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: ptrType$7, tag: ""}]);
177286
177352
  CloseError.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: StatusCode, tag: ""}, {prop: "Reason", name: "Reason", embedded: false, exported: true, typ: $String, tag: ""}]);
177353
+ noCopy.init("", []);
177287
177354
  $init = function() {
177288
177355
  $pkg.$init = function() {};
177289
177356
  /* */ 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:
177290
- $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177291
- $r = bytes.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177292
- $r = context.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177293
- $r = binary.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177294
- $r = errors.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177295
- $r = fmt.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177296
- $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177297
- $r = math.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177298
- $r = bits.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177299
- $r = net.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177300
- $r = http.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177301
- $r = bpool.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177302
- $r = errd.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177303
- $r = wsjs.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177304
- $r = xsync.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177305
- $r = reflect.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177306
- $r = runtime.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177307
- $r = strconv.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177308
- $r = strings.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177309
- $r = sync.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177310
- $r = js.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177311
- $r = time.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177357
+ $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177358
+ $r = context.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177359
+ $r = binary.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177360
+ $r = errors.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177361
+ $r = fmt.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177362
+ $r = bpool.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177363
+ $r = wsjs.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177364
+ $r = xsync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177365
+ $r = io.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177366
+ $r = math.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177367
+ $r = bits.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177368
+ $r = net.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177369
+ $r = http.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177370
+ $r = reflect.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177371
+ $r = runtime.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177372
+ $r = strconv.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177373
+ $r = strings.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177374
+ $r = sync.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177375
+ $r = atomic.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177376
+ $r = js.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177377
+ $r = time.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177312
177378
  _MessageType_index = $toNativeArray($kindUint8, [0, 11, 24]);
177313
177379
  _StatusCode_index = $toNativeArray($kindUint16, [0, 19, 34, 53, 74, 88, 106, 127, 156, 177, 196, 220, 239, 259, 278, 294, 312]);
177314
177380
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
@@ -177317,10 +177383,10 @@ $packages["nhooyr.io/websocket"] = (function() {
177317
177383
  return $pkg;
177318
177384
  })();
177319
177385
  $packages["github.com/supraio/client-daemon/pkg/netpacket"] = (function() {
177320
- var $pkg = {}, $init, context, errs, websocket, time, JsWebsocketConn, ReaderWriterCloser, Driver, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, connects, maxPacketSizes, init, ConnectJsWebsocket, Create, GetMaxPacketSize;
177386
+ var $pkg = {}, $init, context, websocket, errs, time, JsWebsocketConn, ReaderWriterCloser, Driver, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, connects, maxPacketSizes, init, ConnectJsWebsocket, Create, GetMaxPacketSize;
177321
177387
  context = $packages["context"];
177388
+ websocket = $packages["github.com/coder/websocket"];
177322
177389
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
177323
- websocket = $packages["nhooyr.io/websocket"];
177324
177390
  time = $packages["time"];
177325
177391
  JsWebsocketConn = $pkg.JsWebsocketConn = $newType(0, $kindStruct, "netpacket.JsWebsocketConn", true, "github.com/supraio/client-daemon/pkg/netpacket", true, function(conn_) {
177326
177392
  this.$val = this;
@@ -177442,8 +177508,8 @@ $packages["github.com/supraio/client-daemon/pkg/netpacket"] = (function() {
177442
177508
  $pkg.$init = function() {};
177443
177509
  /* */ 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:
177444
177510
  $r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177445
- $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177446
- $r = websocket.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177511
+ $r = websocket.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177512
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177447
177513
  $r = time.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177448
177514
  connects = $makeMap(Driver.keyFor, []);
177449
177515
  maxPacketSizes = $makeMap(Driver.keyFor, []);
@@ -177454,10 +177520,10 @@ $packages["github.com/supraio/client-daemon/pkg/netpacket"] = (function() {
177454
177520
  return $pkg;
177455
177521
  })();
177456
177522
  $packages["github.com/supraio/client-daemon/pkg/netstream"] = (function() {
177457
- var $pkg = {}, $init, context, errs, websocket, time, JsWebsocketConn, ReaderWriter, ReaderWriterCloser, Driver, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, connects, init, ConnectJsWebsocket, Create;
177523
+ var $pkg = {}, $init, context, websocket, errs, time, JsWebsocketConn, ReaderWriter, ReaderWriterCloser, Driver, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, connects, init, ConnectJsWebsocket, Create;
177458
177524
  context = $packages["context"];
177525
+ websocket = $packages["github.com/coder/websocket"];
177459
177526
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
177460
- websocket = $packages["nhooyr.io/websocket"];
177461
177527
  time = $packages["time"];
177462
177528
  JsWebsocketConn = $pkg.JsWebsocketConn = $newType(0, $kindStruct, "netstream.JsWebsocketConn", true, "github.com/supraio/client-daemon/pkg/netstream", true, function(conn_) {
177463
177529
  this.$val = this;
@@ -177575,8 +177641,8 @@ $packages["github.com/supraio/client-daemon/pkg/netstream"] = (function() {
177575
177641
  $pkg.$init = function() {};
177576
177642
  /* */ 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:
177577
177643
  $r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177578
- $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177579
- $r = websocket.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177644
+ $r = websocket.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177645
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177580
177646
  $r = time.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
177581
177647
  connects = $makeMap(Driver.keyFor, []);
177582
177648
  init();
@@ -180000,31 +180066,50 @@ $packages["github.com/supraio/client-daemon/pkg/clientscreen"] = (function() {
180000
180066
  return $pkg;
180001
180067
  })();
180002
180068
  $packages["github.com/supraio/client-daemon/pkg/jshelper"] = (function() {
180003
- var $pkg = {}, $init, js, ptrType, sliceType, Await;
180069
+ var $pkg = {}, $init, log, js, ptrType, sliceType, Await;
180070
+ log = $packages["log"];
180004
180071
  js = $packages["syscall/js"];
180005
180072
  ptrType = $ptrType(js.Value);
180006
180073
  sliceType = $sliceType($emptyInterface);
180007
180074
  Await = function(awaitable) {
180008
- var {$24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$2, _selection, awaitable, catch$1, catchFunc, err, result, then, thenFunc, $s, $deferred, $r, $c} = $restore(this, {awaitable});
180075
+ var {$24r, $24r$1, _r, _r$1, _r$2, _selection, awaitable, catch$1, catchFunc, err, result, then, thenFunc, $s, $deferred, $r, $c} = $restore(this, {awaitable});
180009
180076
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
180010
180077
  catch$1 = [catch$1];
180011
180078
  then = [then];
180012
180079
  then[0] = new $Chan(ptrType, 0);
180013
- $deferred.push([function(_arg) { $close(_arg); }, [then[0]]]);
180080
+ $deferred.push([(function(catch$1, then) { return function() {
180081
+ $close(then[0]);
180082
+ then[0] = $chanNil;
180083
+ }; })(catch$1, then), []]);
180014
180084
  thenFunc = $clone(js.FuncOf((function(catch$1, then) { return function $b(this$1, args) {
180015
180085
  var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
180016
180086
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180017
- $r = $send(then[0], (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180087
+ /* */ if (then[0] === $chanNil) { $s = 1; continue; }
180088
+ /* */ $s = 2; continue;
180089
+ /* if (then[0] === $chanNil) { */ case 1:
180090
+ $r = log.Println(new sliceType([new $String("Promise already resolved cannot resolve again")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180091
+ $s = -1; return $ifaceNil;
180092
+ /* } */ case 2:
180093
+ $r = $send(then[0], (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180018
180094
  $s = -1; return $ifaceNil;
180019
180095
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
180020
180096
  }; })(catch$1, then)), js.Func);
180021
180097
  $deferred.push([$methodVal($clone(thenFunc, js.Func), "Release"), []]);
180022
180098
  catch$1[0] = new $Chan(ptrType, 0);
180023
- $deferred.push([function(_arg$1) { $close(_arg$1); }, [catch$1[0]]]);
180099
+ $deferred.push([(function(catch$1, then) { return function() {
180100
+ $close(catch$1[0]);
180101
+ catch$1[0] = $chanNil;
180102
+ }; })(catch$1, then), []]);
180024
180103
  catchFunc = $clone(js.FuncOf((function(catch$1, then) { return function $b(this$1, args) {
180025
180104
  var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
180026
180105
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180027
- $r = $send(catch$1[0], (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180106
+ /* */ if (catch$1[0] === $chanNil) { $s = 1; continue; }
180107
+ /* */ $s = 2; continue;
180108
+ /* if (catch$1[0] === $chanNil) { */ case 1:
180109
+ $r = log.Println(new sliceType([new $String("Promise already resolved cannot be rejected")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180110
+ $s = -1; return $ifaceNil;
180111
+ /* } */ case 2:
180112
+ $r = $send(catch$1[0], (0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0])); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180028
180113
  $s = -1; return $ifaceNil;
180029
180114
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
180030
180115
  }; })(catch$1, then)), js.Func);
@@ -180047,20 +180132,21 @@ $packages["github.com/supraio/client-daemon/pkg/jshelper"] = (function() {
180047
180132
  $s = 8; case 8: return $24r$1;
180048
180133
  /* } */ case 6:
180049
180134
  $s = -1; return [ptrType.nil, ptrType.nil];
180050
- /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType.nil, ptrType.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Await, $c: true, $r, $24r, $24r$1, _arg, _arg$1, _r, _r$1, _r$2, _selection, awaitable, catch$1, catchFunc, err, result, then, thenFunc, $s, $deferred};return $f; } }
180135
+ /* */ } return; } } catch(err) { $err = err; $s = -1; return [ptrType.nil, ptrType.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Await, $c: true, $r, $24r, $24r$1, _r, _r$1, _r$2, _selection, awaitable, catch$1, catchFunc, err, result, then, thenFunc, $s, $deferred};return $f; } }
180051
180136
  };
180052
180137
  $pkg.Await = Await;
180053
180138
  $init = function() {
180054
180139
  $pkg.$init = function() {};
180055
180140
  /* */ 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:
180056
- $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180141
+ $r = log.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180142
+ $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180057
180143
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
180058
180144
  };
180059
180145
  $pkg.$init = $init;
180060
180146
  return $pkg;
180061
180147
  })();
180062
180148
  $packages["github.com/supraio/client-daemon/pkg/clipboard"] = (function() {
180063
- var $pkg = {}, $init, jshelper, log, js, time, JsClipboard, UpdateClipboardInfo, ptrType, sliceType, funcType, arrayType, ptrType$2, chanType, NewClipboard;
180149
+ var $pkg = {}, $init, jshelper, log, js, time, JsClipboard, UpdateClipboardInfo, ptrType, sliceType, ptrType$1, funcType, arrayType, ptrType$2, chanType, NewClipboard;
180064
180150
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
180065
180151
  log = $packages["log"];
180066
180152
  js = $packages["syscall/js"];
@@ -180087,6 +180173,7 @@ $packages["github.com/supraio/client-daemon/pkg/clipboard"] = (function() {
180087
180173
  });
180088
180174
  ptrType = $ptrType(UpdateClipboardInfo);
180089
180175
  sliceType = $sliceType($emptyInterface);
180176
+ ptrType$1 = $ptrType(js.Value);
180090
180177
  funcType = $funcType([], [], false);
180091
180178
  arrayType = $arrayType(funcType, 0);
180092
180179
  ptrType$2 = $ptrType(JsClipboard);
@@ -180096,6 +180183,7 @@ $packages["github.com/supraio/client-daemon/pkg/clipboard"] = (function() {
180096
180183
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180097
180184
  c = new JsClipboard.ptr($clone($clone($clone(js.Global(), js.Value).Get("navigator"), js.Value).Get("clipboard"), js.Value), new $Chan(ptrType, 0), $clone(new UpdateClipboardInfo.ptr(""), UpdateClipboardInfo));
180098
180185
  $r = c.bindInstantChanges(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180186
+ $go($methodVal(c, "runPeriodicChecking"), []);
180099
180187
  $s = -1; return [c, $ifaceNil];
180100
180188
  /* */ } return; } var $f = {$blk: NewClipboard, $c: true, $r, c, $s};return $f;
180101
180189
  };
@@ -180149,6 +180237,79 @@ $packages["github.com/supraio/client-daemon/pkg/clipboard"] = (function() {
180149
180237
  /* */ } return; } var $f = {$blk: JsClipboard.ptr.prototype.bindInstantChanges, $c: true, $r, _r, c, listener, $s};return $f;
180150
180238
  };
180151
180239
  JsClipboard.prototype.bindInstantChanges = function() { return this.$val.bindInstantChanges(); };
180240
+ JsClipboard.ptr.prototype.runPeriodicChecking = function() {
180241
+ var {_r, _r$1, _r$2, _r$3, _tuple, c, err, errMessage, jsValue, readTextFn, x, $s, $r, $c} = $restore(this, {});
180242
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180243
+ c = this;
180244
+ readTextFn = $clone($clone(c.clipboard, js.Value).Get("readText"), js.Value);
180245
+ /* */ if ($clone(readTextFn, js.Value).IsUndefined()) { $s = 1; continue; }
180246
+ /* */ $s = 2; continue;
180247
+ /* if ($clone(readTextFn, js.Value).IsUndefined()) { */ case 1:
180248
+ $r = log.Println(new sliceType([new $String("Clipboard is not supported in the browser")])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180249
+ $s = -1; return;
180250
+ /* } */ case 2:
180251
+ /* while (true) { */ case 4:
180252
+ _r = $clone(readTextFn, js.Value).Call("call", new sliceType([(x = c.clipboard, new x.constructor.elem(x))])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180253
+ _r$1 = jshelper.Await($clone(_r, js.Value)); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
180254
+ _tuple = _r$1;
180255
+ jsValue = _tuple[0];
180256
+ err = _tuple[1];
180257
+ /* */ if (!(err === ptrType$1.nil)) { $s = 8; continue; }
180258
+ /* */ $s = 9; continue;
180259
+ /* if (!(err === ptrType$1.nil)) { */ case 8:
180260
+ errMessage = $clone($clone(err, js.Value).Get("message"), js.Value).String();
180261
+ /* */ if (errMessage === "Document is not focused.") { $s = 10; continue; }
180262
+ /* */ $s = 11; continue;
180263
+ /* if (errMessage === "Document is not focused.") { */ case 10:
180264
+ _r$2 = c.whenFocused(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
180265
+ _r$3 = jshelper.Await($clone(_r$2, js.Value)); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
180266
+ _r$3;
180267
+ /* continue; */ $s = 4; continue;
180268
+ /* } */ case 11:
180269
+ $r = log.Println(new sliceType([new $String("Error getting clipboard value"), new $String(errMessage)])); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180270
+ $r = time.Sleep(new time.Duration(2, 1410065408)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180271
+ /* continue; */ $s = 4; continue;
180272
+ /* } */ case 9:
180273
+ $r = c.updateClipboardIfChanged($clone(new UpdateClipboardInfo.ptr($clone(jsValue, js.Value).String()), UpdateClipboardInfo)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180274
+ $r = time.Sleep(new time.Duration(0, 1000000000)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
180275
+ $s = 4; continue;
180276
+ case 5:
180277
+ $s = -1; return;
180278
+ /* */ } return; } var $f = {$blk: JsClipboard.ptr.prototype.runPeriodicChecking, $c: true, $r, _r, _r$1, _r$2, _r$3, _tuple, c, err, errMessage, jsValue, readTextFn, x, $s};return $f;
180279
+ };
180280
+ JsClipboard.prototype.runPeriodicChecking = function() { return this.$val.runPeriodicChecking(); };
180281
+ JsClipboard.ptr.prototype.whenFocused = function() {
180282
+ var {_r, c, promise, promiseFn, $s, $r, $c} = $restore(this, {});
180283
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180284
+ c = this;
180285
+ promiseFn = $clone(js.FuncOf((function $b(this$1, promiseArgs) {
180286
+ var {_r, promiseArgs, resolveFn, this$1, $s, $r, $c} = $restore(this, {this$1, promiseArgs});
180287
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180288
+ promiseArgs = [promiseArgs];
180289
+ resolveFn = [resolveFn];
180290
+ resolveFn[0] = new js.Func.ptr(new js.Value.ptr(null, false, arrayType.zero()));
180291
+ js.Func.copy(resolveFn[0], js.FuncOf((function(promiseArgs, resolveFn) { return function $b(this$2, resolveArgs) {
180292
+ var {_r, resolveArgs, this$2, $s, $r, $c} = $restore(this, {this$2, resolveArgs});
180293
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
180294
+ _r = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("focus"), new resolveFn[0].constructor.elem(resolveFn[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180295
+ _r;
180296
+ $clone(resolveFn[0], js.Func).Release();
180297
+ $clone((0 >= promiseArgs[0].$length ? ($throwRuntimeError("index out of range"), undefined) : promiseArgs[0].$array[promiseArgs[0].$offset + 0]), js.Value).Invoke(sliceType.nil);
180298
+ $s = -1; return $ifaceNil;
180299
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, resolveArgs, this$2, $s};return $f;
180300
+ }; })(promiseArgs, resolveFn)));
180301
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("focus"), new resolveFn[0].constructor.elem(resolveFn[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180302
+ _r;
180303
+ $s = -1; return $ifaceNil;
180304
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, promiseArgs, resolveFn, this$1, $s};return $f;
180305
+ })), js.Func);
180306
+ _r = $clone($clone(js.Global(), js.Value).Get("Promise"), js.Value).New(new sliceType([new promiseFn.constructor.elem(promiseFn)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
180307
+ promise = $clone(_r, js.Value);
180308
+ $clone(promiseFn, js.Func).Release();
180309
+ $s = -1; return promise;
180310
+ /* */ } return; } var $f = {$blk: JsClipboard.ptr.prototype.whenFocused, $c: true, $r, _r, c, promise, promiseFn, $s};return $f;
180311
+ };
180312
+ JsClipboard.prototype.whenFocused = function() { return this.$val.whenFocused(); };
180152
180313
  ptrType$2.methods = [{prop: "NextUpdateInfo", name: "NextUpdateInfo", pkg: "", typ: $funcType([], [ptrType, $error], false)}, {prop: "updateClipboardIfChanged", name: "updateClipboardIfChanged", pkg: "github.com/supraio/client-daemon/pkg/clipboard", typ: $funcType([UpdateClipboardInfo], [], false)}, {prop: "bindInstantChanges", name: "bindInstantChanges", pkg: "github.com/supraio/client-daemon/pkg/clipboard", typ: $funcType([], [], false)}, {prop: "runPeriodicChecking", name: "runPeriodicChecking", pkg: "github.com/supraio/client-daemon/pkg/clipboard", typ: $funcType([], [], false)}, {prop: "whenFocused", name: "whenFocused", pkg: "github.com/supraio/client-daemon/pkg/clipboard", typ: $funcType([], [js.Value], false)}];
180153
180314
  JsClipboard.init("github.com/supraio/client-daemon/pkg/clipboard", [{prop: "clipboard", name: "clipboard", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "clipboardInfoChan", name: "clipboardInfoChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "lastInfo", name: "lastInfo", embedded: false, exported: false, typ: UpdateClipboardInfo, tag: ""}]);
180154
180315
  UpdateClipboardInfo.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}]);
@@ -189989,12 +190150,783 @@ $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"] = (function()
189989
190150
  $pkg.$init = $init;
189990
190151
  return $pkg;
189991
190152
  })();
190153
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"] = (function() {
190154
+ var $pkg = {}, $init, focus, key, mouse, size, geom, math, strings, js, DomEvents, sliceType, funcType, sliceType$1, sliceType$2, chanType, ptrType, keyCodesMap, keyCodesByKeyMap, GetDocWidth, GetDocHeight, GetOrientation, NewDomEvents, getMouseDirection, getWheelButton, getMouseButton, getEventModifiers, isFocusIn, getKeyRune, getKeyDirection, getKeyCode;
190155
+ focus = $packages["golang.org/x/mobile/event/focus"];
190156
+ key = $packages["golang.org/x/mobile/event/key"];
190157
+ mouse = $packages["golang.org/x/mobile/event/mouse"];
190158
+ size = $packages["golang.org/x/mobile/event/size"];
190159
+ geom = $packages["golang.org/x/mobile/geom"];
190160
+ math = $packages["math"];
190161
+ strings = $packages["strings"];
190162
+ js = $packages["syscall/js"];
190163
+ DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", true, function(eventChan_, releases_) {
190164
+ this.$val = this;
190165
+ if (arguments.length === 0) {
190166
+ this.eventChan = $chanNil;
190167
+ this.releases = sliceType$1.nil;
190168
+ return;
190169
+ }
190170
+ this.eventChan = eventChan_;
190171
+ this.releases = releases_;
190172
+ });
190173
+ sliceType = $sliceType($emptyInterface);
190174
+ funcType = $funcType([], [], false);
190175
+ sliceType$1 = $sliceType(funcType);
190176
+ sliceType$2 = $sliceType($Int32);
190177
+ chanType = $chanType($emptyInterface, false, false);
190178
+ ptrType = $ptrType(DomEvents);
190179
+ GetDocWidth = function() {
190180
+ return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
190181
+ };
190182
+ $pkg.GetDocWidth = GetDocWidth;
190183
+ GetDocHeight = function() {
190184
+ return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
190185
+ };
190186
+ $pkg.GetDocHeight = GetDocHeight;
190187
+ GetOrientation = function() {
190188
+ var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
190189
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190190
+ orientation = [orientation];
190191
+ orientation[0] = 0;
190192
+ $deferred.push([(function(orientation) { return function() {
190193
+ if (!($interfaceIsEqual($recover(), $ifaceNil))) {
190194
+ orientation[0] = 0;
190195
+ }
190196
+ }; })(orientation), []]);
190197
+ orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
190198
+ /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
190199
+ /* */ $s = 2; continue;
190200
+ /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
190201
+ orientation[0] = 2;
190202
+ $24r = orientation[0];
190203
+ $s = 3; case 3: return $24r;
190204
+ /* } */ case 2:
190205
+ /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
190206
+ /* */ $s = 5; continue;
190207
+ /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
190208
+ orientation[0] = 2;
190209
+ $24r$1 = orientation[0];
190210
+ $s = 6; case 6: return $24r$1;
190211
+ /* } */ case 5:
190212
+ orientation[0] = 0;
190213
+ $24r$2 = orientation[0];
190214
+ $s = 7; case 7: return $24r$2;
190215
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return orientation[0]; } if($curGoroutine.asleep) { var $f = {$blk: GetOrientation, $c: true, $r, $24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred};return $f; } }
190216
+ };
190217
+ $pkg.GetOrientation = GetOrientation;
190218
+ NewDomEvents = function() {
190219
+ return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
190220
+ };
190221
+ $pkg.NewDomEvents = NewDomEvents;
190222
+ DomEvents.ptr.prototype.GetEventChan = function() {
190223
+ var d;
190224
+ d = this;
190225
+ return d.eventChan;
190226
+ };
190227
+ DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
190228
+ DomEvents.ptr.prototype.Release = function() {
190229
+ var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
190230
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190231
+ d = this;
190232
+ _ref = d.releases;
190233
+ _i = 0;
190234
+ /* while (true) { */ case 1:
190235
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190236
+ release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
190237
+ $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190238
+ _i++;
190239
+ $s = 1; continue;
190240
+ case 2:
190241
+ $s = -1; return;
190242
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
190243
+ };
190244
+ DomEvents.prototype.Release = function() { return this.$val.Release(); };
190245
+ DomEvents.ptr.prototype.BindEvents = function() {
190246
+ var {d, $s, $r, $c} = $restore(this, {});
190247
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190248
+ d = this;
190249
+ $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190250
+ $go($methodVal(d, "emitSizeEvent"), []);
190251
+ $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190252
+ $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190253
+ $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190254
+ $s = -1; return;
190255
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
190256
+ };
190257
+ DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
190258
+ DomEvents.ptr.prototype.bindSizeEvents = function() {
190259
+ var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
190260
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190261
+ d = [d];
190262
+ onResize = [onResize];
190263
+ d[0] = this;
190264
+ onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
190265
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
190266
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190267
+ $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190268
+ $s = -1; return $ifaceNil;
190269
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
190270
+ }; })(d, onResize)), js.Func);
190271
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190272
+ _r;
190273
+ d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
190274
+ var {_r$1, $s, $r, $c} = $restore(this, {});
190275
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190276
+ _r$1 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("resize"), new onResize[0].constructor.elem(onResize[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190277
+ _r$1;
190278
+ $clone(onResize[0], js.Func).Release();
190279
+ $s = -1; return;
190280
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
190281
+ }; })(d, onResize));
190282
+ $s = -1; return;
190283
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
190284
+ };
190285
+ DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
190286
+ DomEvents.ptr.prototype.emitSizeEvent = function() {
190287
+ var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
190288
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190289
+ d = this;
190290
+ _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190291
+ orientation = _r;
190292
+ pixelsPerPt = 1;
190293
+ width = GetDocWidth();
190294
+ height = GetDocHeight();
190295
+ $r = $send(d.eventChan, (x = new size.Event.ptr(width, height, ((_q = width / ((pixelsPerPt >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), ((_q$1 = height / ((pixelsPerPt >> 0)), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))), pixelsPerPt, orientation), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190296
+ $s = -1; return;
190297
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
190298
+ };
190299
+ DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
190300
+ DomEvents.ptr.prototype.bindMouseEvents = function() {
190301
+ var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
190302
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190303
+ d = [d];
190304
+ onClick = [onClick];
190305
+ onMove = [onMove];
190306
+ onWheel = [onWheel];
190307
+ d[0] = this;
190308
+ onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190309
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190310
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190311
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190312
+ _r;
190313
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), 0, getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 0), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190314
+ $s = -1; return $ifaceNil;
190315
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
190316
+ }; })(d, onClick, onMove, onWheel)), js.Func);
190317
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190318
+ _r;
190319
+ onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190320
+ var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190321
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190322
+ _r$1 = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190323
+ _r$1;
190324
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getMouseButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getMouseDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190325
+ $s = -1; return $ifaceNil;
190326
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
190327
+ }; })(d, onClick, onMove, onWheel)), js.Func);
190328
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190329
+ _r$1;
190330
+ _r$2 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190331
+ _r$2;
190332
+ onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190333
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190334
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190335
+ $r = $send(d[0].eventChan, (x = new mouse.Event.ptr(($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetX"), js.Value).Float())), ($fround($clone($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Get("offsetY"), js.Value).Float())), getWheelButton($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), 3), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190336
+ $s = -1; return $ifaceNil;
190337
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
190338
+ }; })(d, onClick, onMove, onWheel)), js.Func);
190339
+ _r$3 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190340
+ _r$3;
190341
+ d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
190342
+ var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
190343
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190344
+ _r$4 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousemove"), new onMove[0].constructor.elem(onMove[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
190345
+ _r$4;
190346
+ _r$5 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mousedown"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190347
+ _r$5;
190348
+ _r$6 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("mouseup"), new onClick[0].constructor.elem(onClick[0])])); /* */ $s = 3; case 3: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; }
190349
+ _r$6;
190350
+ _r$7 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("wheel"), new onWheel[0].constructor.elem(onWheel[0])])); /* */ $s = 4; case 4: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; }
190351
+ _r$7;
190352
+ $clone(onMove[0], js.Func).Release();
190353
+ $clone(onClick[0], js.Func).Release();
190354
+ $clone(onWheel[0], js.Func).Release();
190355
+ $s = -1; return;
190356
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
190357
+ }; })(d, onClick, onMove, onWheel));
190358
+ $s = -1; return;
190359
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindMouseEvents, $c: true, $r, _r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s};return $f;
190360
+ };
190361
+ DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
190362
+ getMouseDirection = function(ev) {
190363
+ var dir, ev;
190364
+ dir = 0;
190365
+ dir = 0;
190366
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
190367
+ dir = 1;
190368
+ }
190369
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
190370
+ dir = 2;
190371
+ }
190372
+ return dir;
190373
+ };
190374
+ getWheelButton = function(ev) {
190375
+ var deltaX, deltaY, ev;
190376
+ deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
190377
+ deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
190378
+ if (deltaY > 0) {
190379
+ return -2;
190380
+ }
190381
+ if (deltaY < 0) {
190382
+ return -1;
190383
+ }
190384
+ if (deltaX > 0) {
190385
+ return -4;
190386
+ }
190387
+ if (deltaX < 0) {
190388
+ return -3;
190389
+ }
190390
+ return 0;
190391
+ };
190392
+ getMouseButton = function(ev) {
190393
+ var _1, ev;
190394
+ _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
190395
+ if (_1 === (0)) {
190396
+ return 1;
190397
+ } else if (_1 === (1)) {
190398
+ return 2;
190399
+ } else if (_1 === (2)) {
190400
+ return 3;
190401
+ } else if (_1 === (3)) {
190402
+ return 8;
190403
+ } else if (_1 === (4)) {
190404
+ return 9;
190405
+ } else {
190406
+ return 0;
190407
+ }
190408
+ };
190409
+ getEventModifiers = function(ev) {
190410
+ var ev, mod;
190411
+ mod = 0;
190412
+ if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
190413
+ mod = (mod | (4)) >>> 0;
190414
+ }
190415
+ if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
190416
+ mod = (mod | (2)) >>> 0;
190417
+ }
190418
+ if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
190419
+ mod = (mod | (1)) >>> 0;
190420
+ }
190421
+ if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
190422
+ mod = (mod | (8)) >>> 0;
190423
+ }
190424
+ return mod;
190425
+ };
190426
+ DomEvents.ptr.prototype.bindFocusEvents = function() {
190427
+ var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
190428
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190429
+ d = [d];
190430
+ onFocus = [onFocus];
190431
+ d[0] = this;
190432
+ onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
190433
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190434
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190435
+ $r = $send(d[0].eventChan, (x = new focus.Event.ptr(isFocusIn($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190436
+ $s = -1; return $ifaceNil;
190437
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
190438
+ }; })(d, onFocus)), js.Func);
190439
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190440
+ _r;
190441
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190442
+ _r$1;
190443
+ d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
190444
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
190445
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190446
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("focus"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190447
+ _r$2;
190448
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("blur"), new onFocus[0].constructor.elem(onFocus[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190449
+ _r$3;
190450
+ $clone(onFocus[0], js.Func).Release();
190451
+ $s = -1; return;
190452
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
190453
+ }; })(d, onFocus));
190454
+ $s = -1; return;
190455
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
190456
+ };
190457
+ DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
190458
+ isFocusIn = function(ev) {
190459
+ var ev;
190460
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
190461
+ return true;
190462
+ }
190463
+ return false;
190464
+ };
190465
+ DomEvents.ptr.prototype.bindKeyEvents = function() {
190466
+ var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
190467
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190468
+ d = [d];
190469
+ onKey = [onKey];
190470
+ d[0] = this;
190471
+ onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
190472
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190473
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190474
+ _r = $clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value).Call("preventDefault", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190475
+ _r;
190476
+ $r = $send(d[0].eventChan, (x = new key.Event.ptr(getKeyRune($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyCode($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getEventModifiers($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value)), getKeyDirection($clone((0 >= args.$length ? ($throwRuntimeError("index out of range"), undefined) : args.$array[args.$offset + 0]), js.Value))), new x.constructor.elem(x))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190477
+ $s = -1; return $ifaceNil;
190478
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
190479
+ }; })(d, onKey)), js.Func);
190480
+ _r = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190481
+ _r;
190482
+ _r$1 = $clone(js.Global(), js.Value).Call("addEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190483
+ _r$1;
190484
+ d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
190485
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
190486
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190487
+ _r$2 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keydown"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 1; case 1: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190488
+ _r$2;
190489
+ _r$3 = $clone(js.Global(), js.Value).Call("removeEventListener", new sliceType([new $String("keyup"), new onKey[0].constructor.elem(onKey[0])])); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190490
+ _r$3;
190491
+ $clone(onKey[0], js.Func).Release();
190492
+ $s = -1; return;
190493
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
190494
+ }; })(d, onKey));
190495
+ $s = -1; return;
190496
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
190497
+ };
190498
+ DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
190499
+ getKeyRune = function(ev) {
190500
+ var ev, key$1;
190501
+ key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
190502
+ if (key$1.$length === 1) {
190503
+ return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
190504
+ }
190505
+ return -1;
190506
+ };
190507
+ getKeyDirection = function(ev) {
190508
+ var dir, ev;
190509
+ dir = 0;
190510
+ dir = 0;
190511
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
190512
+ dir = 1;
190513
+ }
190514
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
190515
+ dir = 2;
190516
+ }
190517
+ return dir;
190518
+ };
190519
+ getKeyCode = function(ev) {
190520
+ var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
190521
+ domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
190522
+ _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
190523
+ code = _tuple[0];
190524
+ exists = _tuple[1];
190525
+ if (exists) {
190526
+ return code;
190527
+ }
190528
+ domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
190529
+ _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
190530
+ code$1 = _tuple$1[0];
190531
+ exists$1 = _tuple$1[1];
190532
+ if (exists$1) {
190533
+ return code$1;
190534
+ }
190535
+ return 0;
190536
+ };
190537
+ ptrType.methods = [{prop: "GetEventChan", name: "GetEventChan", pkg: "", typ: $funcType([], [chanType], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "BindEvents", name: "BindEvents", pkg: "", typ: $funcType([], [], false)}, {prop: "bindSizeEvents", name: "bindSizeEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "emitSizeEvent", name: "emitSizeEvent", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindMouseEvents", name: "bindMouseEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindFocusEvents", name: "bindFocusEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}, {prop: "bindKeyEvents", name: "bindKeyEvents", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", typ: $funcType([], [], false)}];
190538
+ DomEvents.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", [{prop: "eventChan", name: "eventChan", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "releases", name: "releases", embedded: false, exported: false, typ: sliceType$1, tag: ""}]);
190539
+ $init = function() {
190540
+ $pkg.$init = function() {};
190541
+ /* */ 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:
190542
+ $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190543
+ $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190544
+ $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190545
+ $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190546
+ $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190547
+ $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190548
+ $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190549
+ $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190550
+ keyCodesMap = $makeMap($String.keyFor, [{ k: "KeyA", v: 4 }, { k: "KeyB", v: 5 }, { k: "KeyC", v: 6 }, { k: "KeyD", v: 7 }, { k: "KeyE", v: 8 }, { k: "KeyF", v: 9 }, { k: "KeyG", v: 10 }, { k: "KeyH", v: 11 }, { k: "KeyI", v: 12 }, { k: "KeyJ", v: 13 }, { k: "KeyK", v: 14 }, { k: "KeyL", v: 15 }, { k: "KeyM", v: 16 }, { k: "KeyN", v: 17 }, { k: "KeyO", v: 18 }, { k: "KeyP", v: 19 }, { k: "KeyQ", v: 20 }, { k: "KeyR", v: 21 }, { k: "KeyS", v: 22 }, { k: "KeyT", v: 23 }, { k: "KeyU", v: 24 }, { k: "KeyV", v: 25 }, { k: "KeyW", v: 26 }, { k: "KeyX", v: 27 }, { k: "KeyY", v: 28 }, { k: "KeyZ", v: 29 }, { k: "Digit1", v: 30 }, { k: "Digit2", v: 31 }, { k: "Digit3", v: 32 }, { k: "Digit4", v: 33 }, { k: "Digit5", v: 34 }, { k: "Digit6", v: 35 }, { k: "Digit7", v: 36 }, { k: "Digit8", v: 37 }, { k: "Digit9", v: 38 }, { k: "Digit0", v: 39 }, { k: "Enter", v: 40 }, { k: "Escape", v: 41 }, { k: "Backspace", v: 42 }, { k: "Tab", v: 43 }, { k: "Space", v: 44 }, { k: "Minus", v: 45 }, { k: "Equal", v: 46 }, { k: "BracketLeft", v: 47 }, { k: "BracketRight", v: 48 }, { k: "Backslash", v: 49 }, { k: "Semicolon", v: 51 }, { k: "Quote", v: 52 }, { k: "Backquote", v: 53 }, { k: "Comma", v: 54 }, { k: "Period", v: 55 }, { k: "Slash", v: 56 }, { k: "CapsLock", v: 57 }, { k: "F1", v: 58 }, { k: "F2", v: 59 }, { k: "F3", v: 60 }, { k: "F4", v: 61 }, { k: "F5", v: 62 }, { k: "F6", v: 63 }, { k: "F7", v: 64 }, { k: "F8", v: 65 }, { k: "F9", v: 66 }, { k: "F10", v: 67 }, { k: "F11", v: 68 }, { k: "F12", v: 69 }, { k: "Pause", v: 72 }, { k: "Insert", v: 73 }, { k: "Home", v: 74 }, { k: "PageUp", v: 75 }, { k: "Delete", v: 76 }, { k: "End", v: 77 }, { k: "PageDown", v: 78 }, { k: "ArrowRight", v: 79 }, { k: "ArrowLeft", v: 80 }, { k: "ArrowDown", v: 81 }, { k: "ArrowUp", v: 82 }, { k: "NumLock", v: 83 }, { k: "NumpadDivide", v: 84 }, { k: "NumpadMultiply", v: 85 }, { k: "NumpadSubtract", v: 86 }, { k: "NumpadAdd", v: 87 }, { k: "NumpadEnter", v: 88 }, { k: "Numpad1", v: 89 }, { k: "Numpad2", v: 90 }, { k: "Numpad3", v: 91 }, { k: "Numpad4", v: 92 }, { k: "Numpad5", v: 93 }, { k: "Numpad6", v: 94 }, { k: "Numpad7", v: 95 }, { k: "Numpad8", v: 96 }, { k: "Numpad9", v: 97 }, { k: "Numpad0", v: 98 }, { k: "NumpadDecimal", v: 99 }, { k: "NumpadEqual", v: 103 }, { k: "F13", v: 104 }, { k: "F14", v: 105 }, { k: "F15", v: 106 }, { k: "F16", v: 107 }, { k: "F17", v: 108 }, { k: "F18", v: 109 }, { k: "F19", v: 110 }, { k: "F20", v: 111 }, { k: "F21", v: 112 }, { k: "F22", v: 113 }, { k: "F23", v: 114 }, { k: "F24", v: 115 }, { k: "Help", v: 117 }, { k: "ContextMenu", v: 118 }, { k: "VolumeMute", v: 127 }, { k: "VolumeUp", v: 128 }, { k: "VolumeDown", v: 129 }, { k: "ControlLeft", v: 224 }, { k: "ShiftLeft", v: 225 }, { k: "AltLeft", v: 226 }, { k: "MetaLeft", v: 227 }, { k: "ControlRight", v: 228 }, { k: "ShiftRight", v: 229 }, { k: "AltRight", v: 230 }, { k: "MetaRight", v: 231 }, { k: "PrintScreen", v: 0 }]);
190551
+ keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
190552
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190553
+ };
190554
+ $pkg.$init = $init;
190555
+ return $pkg;
190556
+ })();
190557
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] = (function() {
190558
+ var $pkg = {}, $init, fmt, errs, jshelper, dom, screen, f64, image, color, draw, sync, js, windowImpl, screenImpl, BufferImpl, sliceType, ptrType, ptrType$1, funcType, arrayType, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, newWindow, newScreenImpl, Main, main, newBuffer;
190559
+ fmt = $packages["fmt"];
190560
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190561
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190562
+ dom = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"];
190563
+ screen = $packages["golang.org/x/exp/shiny/screen"];
190564
+ f64 = $packages["golang.org/x/image/math/f64"];
190565
+ image = $packages["image"];
190566
+ color = $packages["image/color"];
190567
+ draw = $packages["image/draw"];
190568
+ sync = $packages["sync"];
190569
+ js = $packages["syscall/js"];
190570
+ windowImpl = $pkg.windowImpl = $newType(0, $kindStruct, "nacldriver.windowImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(screen_, mutex_, jsNaClDecoder_, domEvents_, released_) {
190571
+ this.$val = this;
190572
+ if (arguments.length === 0) {
190573
+ this.screen = ptrType.nil;
190574
+ this.mutex = ptrType$1.nil;
190575
+ this.jsNaClDecoder = new js.Value.ptr(null, false, arrayType.zero());
190576
+ this.domEvents = ptrType$2.nil;
190577
+ this.released = false;
190578
+ return;
190579
+ }
190580
+ this.screen = screen_;
190581
+ this.mutex = mutex_;
190582
+ this.jsNaClDecoder = jsNaClDecoder_;
190583
+ this.domEvents = domEvents_;
190584
+ this.released = released_;
190585
+ });
190586
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "nacldriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(doc_) {
190587
+ this.$val = this;
190588
+ if (arguments.length === 0) {
190589
+ this.doc = new js.Value.ptr(null, false, arrayType.zero());
190590
+ return;
190591
+ }
190592
+ this.doc = doc_;
190593
+ });
190594
+ BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "nacldriver.BufferImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", true, function(pictureResult_, screen_, size_) {
190595
+ this.$val = this;
190596
+ if (arguments.length === 0) {
190597
+ this.pictureResult = ptrType$4.nil;
190598
+ this.screen = ptrType.nil;
190599
+ this.size = new image.Point.ptr(0, 0);
190600
+ return;
190601
+ }
190602
+ this.pictureResult = pictureResult_;
190603
+ this.screen = screen_;
190604
+ this.size = size_;
190605
+ });
190606
+ sliceType = $sliceType($emptyInterface);
190607
+ ptrType = $ptrType(screenImpl);
190608
+ ptrType$1 = $ptrType(sync.Mutex);
190609
+ funcType = $funcType([], [], false);
190610
+ arrayType = $arrayType(funcType, 0);
190611
+ ptrType$2 = $ptrType(dom.DomEvents);
190612
+ ptrType$3 = $ptrType(BufferImpl);
190613
+ ptrType$4 = $ptrType(js.Value);
190614
+ ptrType$5 = $ptrType(image.RGBA);
190615
+ ptrType$6 = $ptrType(image.YCbCr);
190616
+ ptrType$7 = $ptrType(screen.DrawOptions);
190617
+ ptrType$8 = $ptrType(windowImpl);
190618
+ ptrType$9 = $ptrType(screen.NewWindowOptions);
190619
+ newWindow = function(screen$1, opts) {
190620
+ var {_r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
190621
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190622
+ /* */ if (!(opts.Title === "")) { $s = 1; continue; }
190623
+ /* */ $s = 2; continue;
190624
+ /* if (!(opts.Title === "")) { */ case 1:
190625
+ _r = $clone($clone(screen$1.doc, js.Value).Get("head"), js.Value).Call("getElementsByTagName", new sliceType([new $String("title")])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190626
+ _r$1 = $clone(_r, js.Value).Call("item", new sliceType([new $Int(0)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190627
+ $r = $clone(_r$1, js.Value).Set("innerHTML", new $String(opts.Title)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190628
+ /* } */ case 2:
190629
+ jsNaClDecoder = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
190630
+ /* */ if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { $s = 6; continue; }
190631
+ /* */ $s = 7; continue;
190632
+ /* if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { */ case 6:
190633
+ _r$2 = fmt.Errorf("Cannot get naclDecoder object from global scope", sliceType.nil); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190634
+ $panic(_r$2);
190635
+ /* } */ case 7:
190636
+ domEvents = dom.NewDomEvents();
190637
+ w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(jsNaClDecoder, js.Value), domEvents, false);
190638
+ $s = -1; return w;
190639
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s};return $f;
190640
+ };
190641
+ windowImpl.ptr.prototype.Release = function() {
190642
+ var {w, $s, $deferred, $r, $c} = $restore(this, {});
190643
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190644
+ w = this;
190645
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190646
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
190647
+ /* */ if (w.released) { $s = 2; continue; }
190648
+ /* */ $s = 3; continue;
190649
+ /* if (w.released) { */ case 2:
190650
+ $s = 4; case 4: return;
190651
+ /* } */ case 3:
190652
+ $r = w.domEvents.Release(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190653
+ w.released = true;
190654
+ $s = -1; return;
190655
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: windowImpl.ptr.prototype.Release, $c: true, $r, w, $s, $deferred};return $f; } }
190656
+ };
190657
+ windowImpl.prototype.Release = function() { return this.$val.Release(); };
190658
+ windowImpl.ptr.prototype.Publish = function() {
190659
+ var w;
190660
+ w = this;
190661
+ if (w.released) {
190662
+ return new screen.PublishResult.ptr(false);
190663
+ }
190664
+ return new screen.PublishResult.ptr(false);
190665
+ };
190666
+ windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
190667
+ windowImpl.ptr.prototype.Send = function(event) {
190668
+ var event, w;
190669
+ w = this;
190670
+ if (w.released) {
190671
+ return;
190672
+ }
190673
+ $panic(new $String("Not implemented"));
190674
+ };
190675
+ windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
190676
+ windowImpl.ptr.prototype.SendFirst = function(event) {
190677
+ var event, w;
190678
+ w = this;
190679
+ if (w.released) {
190680
+ return;
190681
+ }
190682
+ $panic(new $String("Not implemented"));
190683
+ };
190684
+ windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
190685
+ windowImpl.ptr.prototype.NextEvent = function() {
190686
+ var {_r, ev, w, $s, $r, $c} = $restore(this, {});
190687
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190688
+ w = this;
190689
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190690
+ ev = _r[0];
190691
+ $s = -1; return ev;
190692
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
190693
+ };
190694
+ windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
190695
+ windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
190696
+ var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190697
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190698
+ w = this;
190699
+ if (w.released) {
190700
+ $s = -1; return;
190701
+ }
190702
+ _r = fmt.Errorf("Not implemented, use UploadYCbCr instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190703
+ $panic(_r);
190704
+ $s = -1; return;
190705
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
190706
+ };
190707
+ windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
190708
+ windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
190709
+ var {_arg, _r, _r$1, _r$2, _r$3, _ref, _tuple, dp, err, jsSrc, renderPromise, sr, src, w, x, $s, $r, $c} = $restore(this, {dp, src, sr});
190710
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190711
+ w = this;
190712
+ if (w.released) {
190713
+ $s = -1; return;
190714
+ }
190715
+ _ref = src;
190716
+ /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 1; continue; }
190717
+ /* */ $s = 2; continue;
190718
+ /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
190719
+ jsSrc = _ref.$val;
190720
+ _r = $clone(w.jsNaClDecoder, js.Value).Call("render", new sliceType([(x = jsSrc.pictureResult, new x.constructor.elem(x))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190721
+ renderPromise = $clone(_r, js.Value);
190722
+ _r$1 = jshelper.Await($clone(renderPromise, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
190723
+ _tuple = _r$1;
190724
+ err = _tuple[1];
190725
+ /* */ if (!(err === ptrType$4.nil)) { $s = 5; continue; }
190726
+ /* */ $s = 6; continue;
190727
+ /* if (!(err === ptrType$4.nil)) { */ case 5:
190728
+ _r$2 = errs.Errorf("%v", new sliceType([err])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
190729
+ _arg = _r$2;
190730
+ $r = errs.Print("Failed to render picture", _arg); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190731
+ /* } */ case 6:
190732
+ $s = -1; return;
190733
+ /* } */ case 2:
190734
+ _r$3 = fmt.Errorf("Not implemented, use nacldriver.BufferImpl instead", sliceType.nil); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
190735
+ $panic(_r$3);
190736
+ $s = -1; return;
190737
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.UploadYCbCr, $c: true, $r, _arg, _r, _r$1, _r$2, _r$3, _ref, _tuple, dp, err, jsSrc, renderPromise, sr, src, w, x, $s};return $f;
190738
+ };
190739
+ windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
190740
+ windowImpl.ptr.prototype.Fill = function(dr, src, op) {
190741
+ var dr, op, src, w;
190742
+ w = this;
190743
+ if (w.released) {
190744
+ return;
190745
+ }
190746
+ $panic(new $String("Not implemented"));
190747
+ };
190748
+ windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
190749
+ windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
190750
+ var op, opts, sr, src, src2dst, w;
190751
+ w = this;
190752
+ if (w.released) {
190753
+ return;
190754
+ }
190755
+ $panic(new $String("Not implemented"));
190756
+ };
190757
+ windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
190758
+ windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
190759
+ var op, opts, sr, src, src2dst, w;
190760
+ w = this;
190761
+ if (w.released) {
190762
+ return;
190763
+ }
190764
+ $panic(new $String("Not implemented"));
190765
+ };
190766
+ windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
190767
+ windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
190768
+ var dp, op, opts, sr, src, w;
190769
+ w = this;
190770
+ if (w.released) {
190771
+ return;
190772
+ }
190773
+ $panic(new $String("Not implemented"));
190774
+ };
190775
+ windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
190776
+ windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
190777
+ var dr, op, opts, sr, src, w;
190778
+ w = this;
190779
+ if (w.released) {
190780
+ return;
190781
+ }
190782
+ $panic(new $String("Not implemented"));
190783
+ };
190784
+ windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
190785
+ newScreenImpl = function() {
190786
+ var s;
190787
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
190788
+ return [s, $ifaceNil];
190789
+ };
190790
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
190791
+ var buffer, s, size;
190792
+ s = this;
190793
+ buffer = newBuffer(s, $clone(size, image.Point));
190794
+ return [buffer, $ifaceNil];
190795
+ };
190796
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
190797
+ screenImpl.ptr.prototype.NewTexture = function(size) {
190798
+ var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
190799
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190800
+ s = this;
190801
+ _r = fmt.Errorf("Texture not implemented", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190802
+ $24r = [$ifaceNil, _r];
190803
+ $s = 2; case 2: return $24r;
190804
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
190805
+ };
190806
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
190807
+ screenImpl.ptr.prototype.NewWindow = function(opts) {
190808
+ var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
190809
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190810
+ s = this;
190811
+ _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190812
+ window = _r;
190813
+ $s = -1; return [window, $ifaceNil];
190814
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
190815
+ };
190816
+ screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
190817
+ Main = function(f) {
190818
+ var {_r, err, f, $s, $r, $c} = $restore(this, {f});
190819
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190820
+ _r = main(f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190821
+ err = _r;
190822
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190823
+ $panic(err);
190824
+ }
190825
+ $s = -1; return;
190826
+ /* */ } return; } var $f = {$blk: Main, $c: true, $r, _r, err, f, $s};return $f;
190827
+ };
190828
+ $pkg.Main = Main;
190829
+ main = function(f) {
190830
+ var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
190831
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190832
+ retErr = $ifaceNil;
190833
+ _tuple = newScreenImpl();
190834
+ s = _tuple[0];
190835
+ err = _tuple[1];
190836
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190837
+ retErr = err;
190838
+ $s = -1; return retErr;
190839
+ }
190840
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190841
+ retErr = $ifaceNil;
190842
+ $s = -1; return retErr;
190843
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
190844
+ };
190845
+ newBuffer = function(screen$1, size) {
190846
+ var b, screen$1, size;
190847
+ b = new BufferImpl.ptr(ptrType$4.nil, screen$1, $clone(size, image.Point));
190848
+ return b;
190849
+ };
190850
+ BufferImpl.ptr.prototype.Size = function() {
190851
+ var b;
190852
+ b = this;
190853
+ return b.size;
190854
+ };
190855
+ BufferImpl.prototype.Size = function() { return this.$val.Size(); };
190856
+ BufferImpl.ptr.prototype.Bounds = function() {
190857
+ var b;
190858
+ b = this;
190859
+ return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
190860
+ };
190861
+ BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
190862
+ BufferImpl.ptr.prototype.RGBA = function() {
190863
+ var {_r, b, $s, $r, $c} = $restore(this, {});
190864
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190865
+ b = this;
190866
+ _r = fmt.Errorf("Not implemented RGBA(), use PictureResult() instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190867
+ $panic(_r);
190868
+ $s = -1; return ptrType$5.nil;
190869
+ /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.RGBA, $c: true, $r, _r, b, $s};return $f;
190870
+ };
190871
+ BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
190872
+ BufferImpl.ptr.prototype.YCbCr = function() {
190873
+ var {_r, b, $s, $r, $c} = $restore(this, {});
190874
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190875
+ b = this;
190876
+ _r = fmt.Errorf("Not implemented YCbCr(), use PictureResult() instead", sliceType.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190877
+ $panic(_r);
190878
+ $s = -1; return ptrType$6.nil;
190879
+ /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.YCbCr, $c: true, $r, _r, b, $s};return $f;
190880
+ };
190881
+ BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
190882
+ BufferImpl.ptr.prototype.GetPictureResult = function() {
190883
+ var b;
190884
+ b = this;
190885
+ return b.pictureResult;
190886
+ };
190887
+ BufferImpl.prototype.GetPictureResult = function() { return this.$val.GetPictureResult(); };
190888
+ BufferImpl.ptr.prototype.SetPictureResult = function(pictureResult) {
190889
+ var b, pictureResult;
190890
+ b = this;
190891
+ b.pictureResult = pictureResult;
190892
+ };
190893
+ BufferImpl.prototype.SetPictureResult = function(pictureResult) { return this.$val.SetPictureResult(pictureResult); };
190894
+ BufferImpl.ptr.prototype.Release = function() {
190895
+ var b;
190896
+ b = this;
190897
+ };
190898
+ BufferImpl.prototype.Release = function() { return this.$val.Release(); };
190899
+ ptrType$8.methods = [{prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}, {prop: "Publish", name: "Publish", pkg: "", typ: $funcType([], [screen.PublishResult], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "SendFirst", name: "SendFirst", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "NextEvent", name: "NextEvent", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Upload", name: "Upload", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "UploadYCbCr", name: "UploadYCbCr", pkg: "", typ: $funcType([image.Point, screen.Buffer, image.Rectangle], [], false)}, {prop: "Fill", name: "Fill", pkg: "", typ: $funcType([image.Rectangle, color.Color, draw.Op], [], false)}, {prop: "Draw", name: "Draw", pkg: "", typ: $funcType([f64.Aff3, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "DrawUniform", name: "DrawUniform", pkg: "", typ: $funcType([f64.Aff3, color.Color, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([image.Point, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}, {prop: "Scale", name: "Scale", pkg: "", typ: $funcType([image.Rectangle, screen.Texture, image.Rectangle, draw.Op, ptrType$7], [], false)}];
190900
+ ptrType.methods = [{prop: "NewBuffer", name: "NewBuffer", pkg: "", typ: $funcType([image.Point], [screen.Buffer, $error], false)}, {prop: "NewTexture", name: "NewTexture", pkg: "", typ: $funcType([image.Point], [screen.Texture, $error], false)}, {prop: "NewWindow", name: "NewWindow", pkg: "", typ: $funcType([ptrType$9], [screen.Window, $error], false)}];
190901
+ ptrType$3.methods = [{prop: "Size", name: "Size", pkg: "", typ: $funcType([], [image.Point], false)}, {prop: "Bounds", name: "Bounds", pkg: "", typ: $funcType([], [image.Rectangle], false)}, {prop: "RGBA", name: "RGBA", pkg: "", typ: $funcType([], [ptrType$5], false)}, {prop: "YCbCr", name: "YCbCr", pkg: "", typ: $funcType([], [ptrType$6], false)}, {prop: "GetPictureResult", name: "GetPictureResult", pkg: "", typ: $funcType([], [ptrType$4], false)}, {prop: "SetPictureResult", name: "SetPictureResult", pkg: "", typ: $funcType([ptrType$4], [], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([], [], false)}];
190902
+ windowImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "mutex", name: "mutex", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: js.Value, tag: ""}, {prop: "domEvents", name: "domEvents", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "released", name: "released", embedded: false, exported: false, typ: $Bool, tag: ""}]);
190903
+ screenImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190904
+ BufferImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "pictureResult", name: "pictureResult", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "screen", name: "screen", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: image.Point, tag: ""}]);
190905
+ $init = function() {
190906
+ $pkg.$init = function() {};
190907
+ /* */ 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:
190908
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190909
+ $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190910
+ $r = jshelper.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190911
+ $r = dom.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190912
+ $r = screen.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190913
+ $r = f64.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190914
+ $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190915
+ $r = color.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190916
+ $r = draw.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190917
+ $r = sync.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190918
+ $r = js.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190919
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190920
+ };
190921
+ $pkg.$init = $init;
190922
+ return $pkg;
190923
+ })();
189992
190924
  $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function() {
189993
- var $pkg = {}, $init, errs, jshelper, general, log, js, NaClDecoder, ptrType, sliceType, sliceType$1, ptrType$1, NewDecoder;
190925
+ var $pkg = {}, $init, errs, jshelper, general, nacldriver, js, NaClDecoder, ptrType, sliceType, ptrType$1, sliceType$1, ptrType$2, NewDecoder;
189994
190926
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
189995
190927
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
189996
190928
  general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
189997
- log = $packages["log"];
190929
+ nacldriver = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"];
189998
190930
  js = $packages["syscall/js"];
189999
190931
  NaClDecoder = $pkg.NaClDecoder = $newType(0, $kindStruct, "nacldecoder.NaClDecoder", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder", true, function(jsNaClDecoder_) {
190000
190932
  this.$val = this;
@@ -190006,8 +190938,9 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190006
190938
  });
190007
190939
  ptrType = $ptrType(js.Value);
190008
190940
  sliceType = $sliceType($emptyInterface);
190941
+ ptrType$1 = $ptrType(nacldriver.BufferImpl);
190009
190942
  sliceType$1 = $sliceType($Uint8);
190010
- ptrType$1 = $ptrType(NaClDecoder);
190943
+ ptrType$2 = $ptrType(NaClDecoder);
190011
190944
  NewDecoder = function(header) {
190012
190945
  var header;
190013
190946
  return new NaClDecoder.ptr(ptrType.nil);
@@ -190043,10 +190976,9 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190043
190976
  /* */ if (!(($clone(initResult, js.Value).Float() === 0))) { $s = 10; continue; }
190044
190977
  /* */ $s = 11; continue;
190045
190978
  /* if (!(($clone(initResult, js.Value).Float() === 0))) { */ case 10:
190046
- $r = log.Println(new sliceType([new $String("Failed to initialize NaCl Decoder"), new $Float64($clone(initResult, js.Value).Float())])); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190047
- _r$5 = errs.Errorf("Failed to initialize NaCl Decoder: %v", new sliceType([new $Float64($clone(initResult, js.Value).Float())])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190979
+ _r$5 = errs.Errorf("Failed to initialize NaCl Decoder: %v", new sliceType([new $Float64($clone(initResult, js.Value).Float())])); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; }
190048
190980
  $24r$1 = _r$5;
190049
- $s = 14; case 14: return $24r$1;
190981
+ $s = 13; case 13: return $24r$1;
190050
190982
  /* } */ case 11:
190051
190983
  m.jsNaClDecoder = jsNaClDecoder[0];
190052
190984
  $s = -1; return $ifaceNil;
@@ -190054,7 +190986,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190054
190986
  };
190055
190987
  NaClDecoder.prototype.initialize = function(param) { return this.$val.initialize(param); };
190056
190988
  NaClDecoder.ptr.prototype.Decode = function(nal, outputBuffer) {
190057
- 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$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, decodeArgs, decodePromise, decodeResult, err, err$1, m, nal, outputBuffer, pictureBuffer, picturePromise, pictureResult, pictureUint8Array, renderPromise, x, x$1, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190989
+ var {$24r, $24r$1, $24r$2, $24r$3, $24r$4, _arg, _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, _tuple, _tuple$1, _tuple$2, currentOutputBuffer, currentOutputBuffer$1, decodeArgs, decodePromise, decodeResult, err, err$1, m, nal, outputBuffer, pictureBuffer, picturePromise, pictureResult, pictureUint8Array, renderPromise, x, $s, $r, $c} = $restore(this, {nal, outputBuffer});
190058
190990
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190059
190991
  m = this;
190060
190992
  /* */ if ((((4 >= nal.$length ? ($throwRuntimeError("index out of range"), undefined) : nal.$array[nal.$offset + 4]) >> 0)) === 103) { $s = 1; continue; }
@@ -190119,30 +191051,57 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190119
191051
  $24r$3 = _r$11;
190120
191052
  $s = 28; case 28: return $24r$3;
190121
191053
  /* } */ case 26:
190122
- _r$12 = $clone(m.jsNaClDecoder, js.Value).Call("render", new sliceType([(x = pictureResult, new x.constructor.elem(x))])); /* */ $s = 29; case 29: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
190123
- renderPromise = $clone(_r$12, js.Value);
190124
- _r$13 = jshelper.Await($clone(renderPromise, js.Value)); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
190125
- _tuple$2 = _r$13;
191054
+ _ref = outputBuffer;
191055
+ /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 29; continue; }
191056
+ /* */ $s = 30; continue;
191057
+ /* if ($assertType(_ref, ptrType$1, true)[1]) { */ case 29:
191058
+ currentOutputBuffer = _ref.$val;
191059
+ currentOutputBuffer.SetPictureResult(pictureResult);
191060
+ $s = 31; continue;
191061
+ /* } else { */ case 30:
191062
+ currentOutputBuffer$1 = _ref;
191063
+ _r$12 = errs.Errorf("Unsupported output buffer type: %T", new sliceType([outputBuffer])); /* */ $s = 32; case 32: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; }
191064
+ $24r$4 = _r$12;
191065
+ $s = 33; case 33: return $24r$4;
191066
+ /* } */ case 31:
191067
+ _r$13 = $clone(m.jsNaClDecoder, js.Value).Call("render", new sliceType([(x = pictureResult, new x.constructor.elem(x))])); /* */ $s = 34; case 34: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; }
191068
+ renderPromise = $clone(_r$13, js.Value);
191069
+ _r$14 = jshelper.Await($clone(renderPromise, js.Value)); /* */ $s = 35; case 35: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
191070
+ _tuple$2 = _r$14;
190126
191071
  err$1 = _tuple$2[1];
190127
- /* */ if (!(err$1 === ptrType.nil)) { $s = 31; continue; }
190128
- /* */ $s = 32; continue;
190129
- /* if (!(err$1 === ptrType.nil)) { */ case 31:
190130
- _r$14 = errs.Errorf("Failed to render picture: %v", new sliceType([err$1])); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; }
190131
- $24r$4 = _r$14;
190132
- $s = 34; case 34: return $24r$4;
190133
- /* } */ case 32:
190134
- _r$15 = $clone(m.jsNaClDecoder, js.Value).Call("recyclePicture", new sliceType([(x$1 = pictureResult, new x$1.constructor.elem(x$1))])); /* */ $s = 35; case 35: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
190135
- _r$15;
191072
+ /* */ if (!(err$1 === ptrType.nil)) { $s = 36; continue; }
191073
+ /* */ $s = 37; continue;
191074
+ /* if (!(err$1 === ptrType.nil)) { */ case 36:
191075
+ _r$15 = errs.Errorf("%v", new sliceType([err$1])); /* */ $s = 38; case 38: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; }
191076
+ _arg = _r$15;
191077
+ $r = errs.Print("Failed to render picture", _arg); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191078
+ /* } */ case 37:
190136
191079
  $s = -1; return $ifaceNil;
190137
- /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Decode, $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$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, decodeArgs, decodePromise, decodeResult, err, err$1, m, nal, outputBuffer, pictureBuffer, picturePromise, pictureResult, pictureUint8Array, renderPromise, x, x$1, $s};return $f;
191080
+ /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Decode, $c: true, $r, $24r, $24r$1, $24r$2, $24r$3, $24r$4, _arg, _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, _tuple, _tuple$1, _tuple$2, currentOutputBuffer, currentOutputBuffer$1, decodeArgs, decodePromise, decodeResult, err, err$1, m, nal, outputBuffer, pictureBuffer, picturePromise, pictureResult, pictureUint8Array, renderPromise, x, $s};return $f;
190138
191081
  };
190139
191082
  NaClDecoder.prototype.Decode = function(nal, outputBuffer) { return this.$val.Decode(nal, outputBuffer); };
190140
191083
  NaClDecoder.ptr.prototype.Release = function(outputBuffer) {
190141
- var m, outputBuffer;
191084
+ var {_r, _ref, currentOutputBuffer, m, outputBuffer, pictureResult, x, $s, $r, $c} = $restore(this, {outputBuffer});
191085
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190142
191086
  m = this;
191087
+ _ref = outputBuffer;
191088
+ /* */ if ($assertType(_ref, ptrType$1, true)[1]) { $s = 1; continue; }
191089
+ /* */ $s = 2; continue;
191090
+ /* if ($assertType(_ref, ptrType$1, true)[1]) { */ case 1:
191091
+ currentOutputBuffer = _ref.$val;
191092
+ pictureResult = currentOutputBuffer.GetPictureResult();
191093
+ /* */ if (!(pictureResult === ptrType.nil)) { $s = 3; continue; }
191094
+ /* */ $s = 4; continue;
191095
+ /* if (!(pictureResult === ptrType.nil)) { */ case 3:
191096
+ _r = $clone(m.jsNaClDecoder, js.Value).Call("recyclePicture", new sliceType([(x = pictureResult, new x.constructor.elem(x))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191097
+ _r;
191098
+ /* } */ case 4:
191099
+ /* } */ case 2:
191100
+ $s = -1; return;
191101
+ /* */ } return; } var $f = {$blk: NaClDecoder.ptr.prototype.Release, $c: true, $r, _r, _ref, currentOutputBuffer, m, outputBuffer, pictureResult, x, $s};return $f;
190143
191102
  };
190144
191103
  NaClDecoder.prototype.Release = function(outputBuffer) { return this.$val.Release(outputBuffer); };
190145
- ptrType$1.methods = [{prop: "initialize", name: "initialize", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
191104
+ ptrType$2.methods = [{prop: "initialize", name: "initialize", pkg: "github.com/supraio/client-daemon/pkg/x264/nacldecoder", typ: $funcType([sliceType$1], [$error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType$1, general.OutputBuffer], [$error], false)}, {prop: "Release", name: "Release", pkg: "", typ: $funcType([general.OutputBuffer], [], false)}];
190146
191105
  NaClDecoder.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder", [{prop: "jsNaClDecoder", name: "jsNaClDecoder", embedded: false, exported: false, typ: ptrType, tag: ""}]);
190147
191106
  $init = function() {
190148
191107
  $pkg.$init = function() {};
@@ -190150,7 +191109,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190150
191109
  $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190151
191110
  $r = jshelper.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190152
191111
  $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190153
- $r = log.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191112
+ $r = nacldriver.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190154
191113
  $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190155
191114
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190156
191115
  };
@@ -190894,7 +191853,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
190894
191853
  decoder = webcodecs.NewDecoder(header);
190895
191854
  $s = 5; continue;
190896
191855
  /* } else { */ case 4:
190897
- _r = errs.Errorf("Not available any h264 docoder adapeter in JS", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191856
+ _r = errs.Errorf("Not available any h264 decoder adapter in JS", sliceType.nil); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190898
191857
  $24r = [ptrType.nil, _r];
190899
191858
  $s = 7; case 7: return $24r;
190900
191859
  /* } */ case 5:
@@ -190938,8 +191897,100 @@ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
190938
191897
  $pkg.$init = $init;
190939
191898
  return $pkg;
190940
191899
  })();
191900
+ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
191901
+ var $pkg = {}, $init, fmt, Cross, Event, Stage, sliceType;
191902
+ fmt = $packages["fmt"];
191903
+ Cross = $pkg.Cross = $newType(4, $kindUint32, "lifecycle.Cross", true, "golang.org/x/mobile/event/lifecycle", true, null);
191904
+ Event = $pkg.Event = $newType(0, $kindStruct, "lifecycle.Event", true, "golang.org/x/mobile/event/lifecycle", true, function(From_, To_, DrawContext_) {
191905
+ this.$val = this;
191906
+ if (arguments.length === 0) {
191907
+ this.From = 0;
191908
+ this.To = 0;
191909
+ this.DrawContext = $ifaceNil;
191910
+ return;
191911
+ }
191912
+ this.From = From_;
191913
+ this.To = To_;
191914
+ this.DrawContext = DrawContext_;
191915
+ });
191916
+ Stage = $pkg.Stage = $newType(4, $kindUint32, "lifecycle.Stage", true, "golang.org/x/mobile/event/lifecycle", true, null);
191917
+ sliceType = $sliceType($emptyInterface);
191918
+ Cross.prototype.String = function() {
191919
+ var _1, c;
191920
+ c = this.$val;
191921
+ _1 = c;
191922
+ if (_1 === (1)) {
191923
+ return "on";
191924
+ } else if (_1 === (2)) {
191925
+ return "off";
191926
+ }
191927
+ return "none";
191928
+ };
191929
+ $ptrType(Cross).prototype.String = function() { return new Cross(this.$get()).String(); };
191930
+ Event.ptr.prototype.String = function() {
191931
+ var {$24r, _r, e, $s, $r, $c} = $restore(this, {});
191932
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191933
+ e = this;
191934
+ _r = fmt.Sprintf("lifecycle.Event{From:%v, To:%v, DrawContext:%v}", new sliceType([new Stage(e.From), new Stage(e.To), e.DrawContext])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191935
+ $24r = _r;
191936
+ $s = 2; case 2: return $24r;
191937
+ /* */ } return; } var $f = {$blk: Event.ptr.prototype.String, $c: true, $r, $24r, _r, e, $s};return $f;
191938
+ };
191939
+ Event.prototype.String = function() { return this.$val.String(); };
191940
+ Event.ptr.prototype.Crosses = function(s) {
191941
+ var e, s;
191942
+ e = this;
191943
+ if (e.From < s && e.To >= s) {
191944
+ return 1;
191945
+ } else if (e.From >= s && e.To < s) {
191946
+ return 2;
191947
+ }
191948
+ return 0;
191949
+ };
191950
+ Event.prototype.Crosses = function(s) { return this.$val.Crosses(s); };
191951
+ Stage.prototype.String = function() {
191952
+ var {$24r, _1, _r, s, $s, $r, $c} = $restore(this, {});
191953
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191954
+ s = this.$val;
191955
+ _1 = s;
191956
+ /* */ if (_1 === (0)) { $s = 2; continue; }
191957
+ /* */ if (_1 === (1)) { $s = 3; continue; }
191958
+ /* */ if (_1 === (2)) { $s = 4; continue; }
191959
+ /* */ if (_1 === (3)) { $s = 5; continue; }
191960
+ /* */ $s = 6; continue;
191961
+ /* if (_1 === (0)) { */ case 2:
191962
+ $s = -1; return "StageDead";
191963
+ /* } else if (_1 === (1)) { */ case 3:
191964
+ $s = -1; return "StageAlive";
191965
+ /* } else if (_1 === (2)) { */ case 4:
191966
+ $s = -1; return "StageVisible";
191967
+ /* } else if (_1 === (3)) { */ case 5:
191968
+ $s = -1; return "StageFocused";
191969
+ /* } else { */ case 6:
191970
+ _r = fmt.Sprintf("lifecycle.Stage(%d)", new sliceType([new Stage(s)])); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191971
+ $24r = _r;
191972
+ $s = 9; case 9: return $24r;
191973
+ /* } */ case 7:
191974
+ case 1:
191975
+ $s = -1; return "";
191976
+ /* */ } return; } var $f = {$blk: Stage.prototype.String, $c: true, $r, $24r, _1, _r, s, $s};return $f;
191977
+ };
191978
+ $ptrType(Stage).prototype.String = function() { return new Stage(this.$get()).String(); };
191979
+ Cross.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
191980
+ Event.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Crosses", name: "Crosses", pkg: "", typ: $funcType([Stage], [Cross], false)}];
191981
+ Stage.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
191982
+ Event.init("", [{prop: "From", name: "From", embedded: false, exported: true, typ: Stage, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: Stage, tag: ""}, {prop: "DrawContext", name: "DrawContext", embedded: false, exported: true, typ: $emptyInterface, tag: ""}]);
191983
+ $init = function() {
191984
+ $pkg.$init = function() {};
191985
+ /* */ 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:
191986
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191987
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191988
+ };
191989
+ $pkg.$init = $init;
191990
+ return $pkg;
191991
+ })();
190941
191992
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
190942
- var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, errs, input, message, netclient, netpacket, netstream, stats, window, x264, canvasdriver, webgldriver, screen, focus, key, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, X264FrameRenderer, ScreenWindow, ProcessInfo, ProcessInfoManager, FrameCollector, FrameMapItem, Frame, FrameType, ptrType, ptrType$1, ptrType$2, funcType, sliceType, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$1, sliceType$2, structType, sliceType$3, ptrType$11, ptrType$12, funcType$1, ptrType$13, chanType, chanType$1, chanType$2, chanType$3, chanType$4, mapType, NewX264FrameRenderer, NewScreenWindow, MainDriver, NewProcessInfoManager, NewFrameCollector;
191993
+ var $pkg = {}, $init, binary, json, query, clientscreen, clipboard, errs, input, message, netclient, netpacket, netstream, stats, window, x264, nacldriver, canvasdriver, webgldriver, screen, focus, key, lifecycle, mouse, size, image, io, ioutil, log, os, path, strings, sync, js, time, X264FrameRenderer, ScreenWindow, ProcessInfo, ProcessInfoManager, FrameCollector, FrameMapItem, Frame, FrameType, ptrType, ptrType$1, ptrType$2, funcType, sliceType, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$1, sliceType$2, structType, sliceType$3, ptrType$11, ptrType$12, funcType$1, ptrType$13, chanType, chanType$1, chanType$2, chanType$3, chanType$4, mapType, NewX264FrameRenderer, NewScreenWindow, MainDriver, NewProcessInfoManager, NewFrameCollector;
190943
191994
  binary = $packages["encoding/binary"];
190944
191995
  json = $packages["encoding/json"];
190945
191996
  query = $packages["github.com/google/go-querystring/query"];
@@ -190954,11 +192005,13 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
190954
192005
  stats = $packages["github.com/supraio/client-daemon/pkg/stats"];
190955
192006
  window = $packages["github.com/supraio/client-daemon/pkg/window"];
190956
192007
  x264 = $packages["github.com/supraio/client-daemon/pkg/x264"];
192008
+ nacldriver = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"];
190957
192009
  canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
190958
192010
  webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
190959
192011
  screen = $packages["golang.org/x/exp/shiny/screen"];
190960
192012
  focus = $packages["golang.org/x/mobile/event/focus"];
190961
192013
  key = $packages["golang.org/x/mobile/event/key"];
192014
+ lifecycle = $packages["golang.org/x/mobile/event/lifecycle"];
190962
192015
  mouse = $packages["golang.org/x/mobile/event/mouse"];
190963
192016
  size = $packages["golang.org/x/mobile/event/size"];
190964
192017
  image = $packages["image"];
@@ -191159,7 +192212,7 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191159
192212
  };
191160
192213
  $pkg.NewX264FrameRenderer = NewX264FrameRenderer;
191161
192214
  X264FrameRenderer.ptr.prototype.Render = function(frame) {
191162
- var {_r, _r$1, _tuple, err, frame, r, $s, $deferred, $r, $c} = $restore(this, {frame});
192215
+ var {_arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, err, frame, r, $s, $deferred, $r, $c} = $restore(this, {frame});
191163
192216
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191164
192217
  r = this;
191165
192218
  err = $ifaceNil;
@@ -191189,9 +192242,16 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191189
192242
  $s = 14; case 14: return;
191190
192243
  /* } */ case 12:
191191
192244
  $r = r.stats.NotifyFrameRenderStarted(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191192
- $r = r.stats.NotifyFrameRenderEnded(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192245
+ _arg = $clone(new image.Point.ptr(0, 0), image.Point);
192246
+ _arg$1 = r.screenBuffer;
192247
+ _r$2 = r.screenBuffer.YCbCr(); /* */ $s = 16; case 16: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
192248
+ _arg$2 = $clone(_r$2.Rect, image.Rectangle);
192249
+ $r = r.window.UploadYCbCr(_arg, _arg$1, _arg$2); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192250
+ _r$3 = r.window.Publish(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
192251
+ _r$3;
192252
+ $r = r.stats.NotifyFrameRenderEnded(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191193
192253
  $s = -1; return;
191194
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: X264FrameRenderer.ptr.prototype.Render, $c: true, $r, _r, _r$1, _tuple, err, frame, r, $s, $deferred};return $f; } }
192254
+ /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: X264FrameRenderer.ptr.prototype.Render, $c: true, $r, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _tuple, err, frame, r, $s, $deferred};return $f; } }
191195
192255
  };
191196
192256
  X264FrameRenderer.prototype.Render = function(frame) { return this.$val.Render(frame); };
191197
192257
  NewScreenWindow = function(processInfoManager, screenDriver, screenHost, metadataDriver, metadataHost, clientID, clientSecret, screenID, secure, screenSize, timeoutDuration) {
@@ -191289,14 +192349,15 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191289
192349
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 10:
191290
192350
  $r = errs.Print("Cannot close screen connection", err); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191291
192351
  /* } */ case 11:
191292
- $r = $send(w.winCloseChannel, (x = new structType.ptr(), new x.constructor.elem(x))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191293
- _r$3 = w.processInfoManager.RemoveProcessInfo(w.screenID); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
192352
+ $r = w.window.Release(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192353
+ $r = $send(w.winCloseChannel, (x = new structType.ptr(), new x.constructor.elem(x))); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192354
+ _r$3 = w.processInfoManager.RemoveProcessInfo(w.screenID); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; }
191294
192355
  err = _r$3;
191295
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 15; continue; }
191296
- /* */ $s = 16; continue;
191297
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 15:
191298
- $r = errs.Print("Cannot remove process info file", err); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191299
- /* } */ case 16:
192356
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 16; continue; }
192357
+ /* */ $s = 17; continue;
192358
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 16:
192359
+ $r = errs.Print("Cannot remove process info file", err); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192360
+ /* } */ case 17:
191300
192361
  w.frameCollector = ptrType$4.nil;
191301
192362
  w.x264Renderer = ptrType$5.nil;
191302
192363
  w.screenConn = $ifaceNil;
@@ -191304,13 +192365,13 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191304
192365
  w.screen = $ifaceNil;
191305
192366
  _ref = w.onClose;
191306
192367
  _i = 0;
191307
- /* while (true) { */ case 18:
191308
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 19; continue; }
192368
+ /* while (true) { */ case 19:
192369
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 20; continue; }
191309
192370
  callback = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
191310
- $r = callback(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192371
+ $r = callback(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191311
192372
  _i++;
191312
- $s = 18; continue;
191313
- case 19:
192373
+ $s = 19; continue;
192374
+ case 20:
191314
192375
  $s = -1; return;
191315
192376
  /* */ } return; } var $f = {$blk: ScreenWindow.ptr.prototype.Close, $c: true, $r, _i, _r, _r$1, _r$2, _r$3, _ref, callback, err, w, x, $s};return $f;
191316
192377
  };
@@ -191332,20 +192393,73 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191332
192393
  var {$s, $r, $c} = $restore(this, {});
191333
192394
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191334
192395
  $r = MainDriver((function(w, windowChannel) { return function $b(s) {
191335
- var {_r, s, $s, $r, $c} = $restore(this, {s});
192396
+ var {_r, _r$1, _tuple, err, s, window$1, $s, $r, $c} = $restore(this, {s});
191336
192397
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192398
+ _r = s.NewWindow(new screen.NewWindowOptions.ptr(w[0].screenSize.X, w[0].screenSize.Y, "")); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
192399
+ _tuple = _r;
192400
+ window$1 = _tuple[0];
192401
+ err = _tuple[1];
192402
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
192403
+ /* */ $s = 3; continue;
192404
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
192405
+ $r = $send(windowChannel[0], err); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192406
+ $s = -1; return;
192407
+ /* } */ case 3:
192408
+ w[0].window = window$1;
191337
192409
  w[0].screen = s;
191338
- $r = $send(windowChannel[0], $ifaceNil); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191339
- _r = $recv(w[0].winCloseChannel); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191340
- _r[0];
192410
+ $r = $send(windowChannel[0], $ifaceNil); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192411
+ _r$1 = $recv(w[0].winCloseChannel); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192412
+ _r$1[0];
191341
192413
  $s = -1; return;
191342
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, s, $s};return $f;
192414
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, _r$1, _tuple, err, s, window$1, $s};return $f;
191343
192415
  }; })(w, windowChannel)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191344
192416
  $s = -1; return;
191345
192417
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
191346
192418
  }; })(w, windowChannel), []);
191347
192419
  _r = $recv(windowChannel[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191348
192420
  err = _r[0];
192421
+ $go((function(w, windowChannel) { return function $b() {
192422
+ var {_r$1, _ref, e, e$1, e$2, e$3, e$4, $s, $r, $c} = $restore(this, {});
192423
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
192424
+ /* while (true) { */ case 1:
192425
+ _r$1 = w[0].window.NextEvent(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
192426
+ _ref = _r$1;
192427
+ /* */ if ($assertType(_ref, lifecycle.Event, true)[1]) { $s = 4; continue; }
192428
+ /* */ if ($assertType(_ref, key.Event, true)[1]) { $s = 5; continue; }
192429
+ /* */ if ($assertType(_ref, mouse.Event, true)[1]) { $s = 6; continue; }
192430
+ /* */ if ($assertType(_ref, size.Event, true)[1]) { $s = 7; continue; }
192431
+ /* */ if ($assertType(_ref, focus.Event, true)[1]) { $s = 8; continue; }
192432
+ /* */ $s = 9; continue;
192433
+ /* if ($assertType(_ref, lifecycle.Event, true)[1]) { */ case 4:
192434
+ e = $clone(_ref.$val, lifecycle.Event);
192435
+ /* */ if (e.To === 0) { $s = 10; continue; }
192436
+ /* */ $s = 11; continue;
192437
+ /* if (e.To === 0) { */ case 10:
192438
+ $r = w[0].Close(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192439
+ $s = -1; return;
192440
+ /* } */ case 11:
192441
+ $s = 9; continue;
192442
+ /* } else if ($assertType(_ref, key.Event, true)[1]) { */ case 5:
192443
+ e$1 = $clone(_ref.$val, key.Event);
192444
+ $r = $send(w[0].keyEventChan, $clone($clone(e$1, key.Event), key.Event)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192445
+ $s = 9; continue;
192446
+ /* } else if ($assertType(_ref, mouse.Event, true)[1]) { */ case 6:
192447
+ e$2 = $clone(_ref.$val, mouse.Event);
192448
+ $r = $send(w[0].mouseEventChan, $clone($clone(e$2, mouse.Event), mouse.Event)); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192449
+ $s = 9; continue;
192450
+ /* } else if ($assertType(_ref, size.Event, true)[1]) { */ case 7:
192451
+ e$3 = $clone(_ref.$val, size.Event);
192452
+ $r = $send(w[0].sizeEventChan, $clone($clone(e$3, size.Event), size.Event)); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192453
+ $s = 9; continue;
192454
+ /* } else if ($assertType(_ref, focus.Event, true)[1]) { */ case 8:
192455
+ e$4 = $clone(_ref.$val, focus.Event);
192456
+ $r = $send(w[0].focusEventChan, $clone($clone(e$4, focus.Event), focus.Event)); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192457
+ /* } */ case 9:
192458
+ $s = 1; continue;
192459
+ case 2:
192460
+ $s = -1; return;
192461
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, _ref, e, e$1, e$2, e$3, e$4, $s};return $f;
192462
+ }; })(w, windowChannel), []);
191349
192463
  $go((function(w, windowChannel) { return function $b() {
191350
192464
  var {_1, _2, _r$1, _r$2, _tuple, _tuple$1, close, point, resChan, $s, $r, $c} = $restore(this, {});
191351
192465
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -191752,14 +192866,18 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191752
192866
  MainDriver = function(f) {
191753
192867
  var {f, $s, $r, $c} = $restore(this, {f});
191754
192868
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191755
- /* */ if ($clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
191756
- /* */ $s = 2; continue;
191757
- /* if ($clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 1:
191758
- $r = webgldriver.Main(f); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191759
- $s = 3; continue;
191760
- /* } else { */ case 2:
191761
- $r = canvasdriver.Main(f); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191762
- /* } */ case 3:
192869
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { $s = 1; continue; }
192870
+ /* */ if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { $s = 2; continue; }
192871
+ /* */ $s = 3; continue;
192872
+ /* if (!$clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value).IsUndefined()) { */ case 1:
192873
+ $r = nacldriver.Main(f); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192874
+ $s = 4; continue;
192875
+ /* } else if (!$clone($clone(js.Global(), js.Value).Get("VideoDecoder"), js.Value).IsUndefined()) { */ case 2:
192876
+ $r = canvasdriver.Main(f); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192877
+ $s = 4; continue;
192878
+ /* } else { */ case 3:
192879
+ $r = webgldriver.Main(f); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192880
+ /* } */ case 4:
191763
192881
  $s = -1; return;
191764
192882
  /* */ } return; } var $f = {$blk: MainDriver, $c: true, $r, f, $s};return $f;
191765
192883
  };
@@ -192039,23 +193157,25 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
192039
193157
  $r = stats.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192040
193158
  $r = window.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192041
193159
  $r = x264.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192042
- $r = canvasdriver.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192043
- $r = webgldriver.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192044
- $r = screen.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192045
- $r = focus.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192046
- $r = key.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192047
- $r = mouse.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192048
- $r = size.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192049
- $r = image.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192050
- $r = io.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192051
- $r = ioutil.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192052
- $r = log.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192053
- $r = os.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192054
- $r = path.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192055
- $r = strings.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192056
- $r = sync.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192057
- $r = js.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192058
- $r = time.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193160
+ $r = nacldriver.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193161
+ $r = canvasdriver.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193162
+ $r = webgldriver.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193163
+ $r = screen.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193164
+ $r = focus.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193165
+ $r = key.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193166
+ $r = lifecycle.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193167
+ $r = mouse.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193168
+ $r = size.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193169
+ $r = image.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193170
+ $r = io.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193171
+ $r = ioutil.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193172
+ $r = log.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193173
+ $r = os.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193174
+ $r = path.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193175
+ $r = strings.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193176
+ $r = sync.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193177
+ $r = js.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
193178
+ $r = time.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192059
193179
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
192060
193180
  };
192061
193181
  $pkg.$init = $init;