@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.
@@ -46369,13 +46369,14 @@ $packages["math/rand"] = (function() {
46369
46369
  return $pkg;
46370
46370
  })();
46371
46371
  $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
46372
- var $pkg = {}, $init, log, rand, os, syscall, time, sliceType, seededRand, _r, _r$1, _r$2, _r$3, GenerateStringWithCharset, GenerateStringWithLength;
46372
+ var $pkg = {}, $init, log, rand, os, syscall, time, sliceType, sliceType$1, seededRand, _r, _r$1, _r$2, _r$3, GenerateStringWithCharset, GenerateStringWithLength, WaitOnStopSignal;
46373
46373
  log = $packages["log"];
46374
46374
  rand = $packages["math/rand"];
46375
46375
  os = $packages["os"];
46376
46376
  syscall = $packages["syscall"];
46377
46377
  time = $packages["time"];
46378
46378
  sliceType = $sliceType($Uint8);
46379
+ sliceType$1 = $sliceType($emptyInterface);
46379
46380
  GenerateStringWithCharset = function(length, charset) {
46380
46381
  var {_i, _r$4, _ref, b, charset, i, length, $s, $r, $c} = $restore(this, {length, charset});
46381
46382
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -46403,6 +46404,25 @@ $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
46403
46404
  /* */ } return; } var $f = {$blk: GenerateStringWithLength, $c: true, $r, $24r, _r$4, length, $s};return $f;
46404
46405
  };
46405
46406
  $pkg.GenerateStringWithLength = GenerateStringWithLength;
46407
+ WaitOnStopSignal = function(signalChannel) {
46408
+ var {_r$4, sig, signalChannel, $s, $r, $c} = $restore(this, {signalChannel});
46409
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46410
+ signalChannel = [signalChannel];
46411
+ $go((function(signalChannel) { return function $b() {
46412
+ var {$s, $r, $c} = $restore(this, {});
46413
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46414
+ $r = time.Sleep(new time.Duration(20116, 2437873664)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46415
+ $r = $send(signalChannel[0], new syscall.Signal(6)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46416
+ $s = -1; return;
46417
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, $s};return $f;
46418
+ }; })(signalChannel), []);
46419
+ _r$4 = $recv(signalChannel[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; }
46420
+ sig = _r$4[0];
46421
+ $r = log.Printf("Signal %s received (emulated after 24 hours).\n", new sliceType$1([sig])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46422
+ $s = -1; return;
46423
+ /* */ } return; } var $f = {$blk: WaitOnStopSignal, $c: true, $r, _r$4, sig, signalChannel, $s};return $f;
46424
+ };
46425
+ $pkg.WaitOnStopSignal = WaitOnStopSignal;
46406
46426
  $init = function() {
46407
46427
  $pkg.$init = function() {};
46408
46428
  /* */ 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:
@@ -46421,6 +46441,397 @@ $packages["github.com/supraio/client-daemon/pkg/helper"] = (function() {
46421
46441
  $pkg.$init = $init;
46422
46442
  return $pkg;
46423
46443
  })();
46444
+ $packages["github.com/coder/websocket/internal/bpool"] = (function() {
46445
+ var $pkg = {}, $init, bytes, sync, sliceType, sliceType$1, ptrType, bpool, Get, Put;
46446
+ bytes = $packages["bytes"];
46447
+ sync = $packages["sync"];
46448
+ sliceType = $sliceType($emptyInterface);
46449
+ sliceType$1 = $sliceType($Uint8);
46450
+ ptrType = $ptrType(bytes.Buffer);
46451
+ Get = function() {
46452
+ var {_r, b, $s, $r, $c} = $restore(this, {});
46453
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46454
+ _r = bpool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
46455
+ b = _r;
46456
+ if ($interfaceIsEqual(b, $ifaceNil)) {
46457
+ $s = -1; return new bytes.Buffer.ptr(sliceType$1.nil, 0, 0);
46458
+ }
46459
+ $s = -1; return $assertType(b, ptrType);
46460
+ /* */ } return; } var $f = {$blk: Get, $c: true, $r, _r, b, $s};return $f;
46461
+ };
46462
+ $pkg.Get = Get;
46463
+ Put = function(b) {
46464
+ var b;
46465
+ b.Reset();
46466
+ bpool.Put(b);
46467
+ };
46468
+ $pkg.Put = Put;
46469
+ $init = function() {
46470
+ $pkg.$init = function() {};
46471
+ /* */ 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:
46472
+ $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46473
+ $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46474
+ bpool = new sync.Pool.ptr(sliceType.nil, $throwNilPointerError);
46475
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
46476
+ };
46477
+ $pkg.$init = $init;
46478
+ return $pkg;
46479
+ })();
46480
+ $packages["github.com/coder/websocket/internal/wsjs"] = (function() {
46481
+ var $pkg = {}, $init, js, WebSocket, CloseEvent, MessageEvent, funcType, arrayType, ptrType, sliceType, sliceType$1, funcType$1, funcType$2, funcType$3, handleJSError, New, extractArrayBuffer, uint8Array;
46482
+ js = $packages["syscall/js"];
46483
+ WebSocket = $pkg.WebSocket = $newType(0, $kindStruct, "wsjs.WebSocket", true, "github.com/coder/websocket/internal/wsjs", true, function(v_) {
46484
+ this.$val = this;
46485
+ if (arguments.length === 0) {
46486
+ this.v = new js.Value.ptr(null, false, arrayType.zero());
46487
+ return;
46488
+ }
46489
+ this.v = v_;
46490
+ });
46491
+ CloseEvent = $pkg.CloseEvent = $newType(0, $kindStruct, "wsjs.CloseEvent", true, "github.com/coder/websocket/internal/wsjs", true, function(Code_, Reason_, WasClean_) {
46492
+ this.$val = this;
46493
+ if (arguments.length === 0) {
46494
+ this.Code = 0;
46495
+ this.Reason = "";
46496
+ this.WasClean = false;
46497
+ return;
46498
+ }
46499
+ this.Code = Code_;
46500
+ this.Reason = Reason_;
46501
+ this.WasClean = WasClean_;
46502
+ });
46503
+ MessageEvent = $pkg.MessageEvent = $newType(0, $kindStruct, "wsjs.MessageEvent", true, "github.com/coder/websocket/internal/wsjs", true, function(Data_) {
46504
+ this.$val = this;
46505
+ if (arguments.length === 0) {
46506
+ this.Data = $ifaceNil;
46507
+ return;
46508
+ }
46509
+ this.Data = Data_;
46510
+ });
46511
+ funcType = $funcType([], [], false);
46512
+ arrayType = $arrayType(funcType, 0);
46513
+ ptrType = $ptrType($error);
46514
+ sliceType = $sliceType($emptyInterface);
46515
+ sliceType$1 = $sliceType($Uint8);
46516
+ funcType$1 = $funcType([js.Value], [], false);
46517
+ funcType$2 = $funcType([CloseEvent], [], false);
46518
+ funcType$3 = $funcType([MessageEvent], [], false);
46519
+ handleJSError = function(err, onErr) {
46520
+ var {_tuple, err, jsErr, ok, onErr, r, $s, $r, $c} = $restore(this, {err, onErr});
46521
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46522
+ r = $recover();
46523
+ _tuple = $assertType(r, js.Error, true);
46524
+ jsErr = $clone(_tuple[0], js.Error);
46525
+ ok = _tuple[1];
46526
+ /* */ if (ok) { $s = 1; continue; }
46527
+ /* */ $s = 2; continue;
46528
+ /* if (ok) { */ case 1:
46529
+ err.$set(new jsErr.constructor.elem(jsErr));
46530
+ /* */ if (!(onErr === $throwNilPointerError)) { $s = 3; continue; }
46531
+ /* */ $s = 4; continue;
46532
+ /* if (!(onErr === $throwNilPointerError)) { */ case 3:
46533
+ $r = onErr(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46534
+ /* } */ case 4:
46535
+ $s = -1; return;
46536
+ /* } */ case 2:
46537
+ if (!($interfaceIsEqual(r, $ifaceNil))) {
46538
+ $panic(r);
46539
+ }
46540
+ $s = -1; return;
46541
+ /* */ } return; } var $f = {$blk: handleJSError, $c: true, $r, _tuple, err, jsErr, ok, onErr, r, $s};return $f;
46542
+ };
46543
+ New = function(url, protocols) {
46544
+ var {$24r, _i, _r, _ref, _tmp, _tmp$1, c, err, i, jsProtocols, p, protocols, url, $s, $deferred, $r, $c} = $restore(this, {url, protocols});
46545
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
46546
+ c = [c];
46547
+ err = [err];
46548
+ c[0] = new WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero()));
46549
+ err[0] = $ifaceNil;
46550
+ $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() {
46551
+ WebSocket.copy(c[0], new WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero())));
46552
+ }; })(c, err)]]);
46553
+ jsProtocols = $makeSlice(sliceType, protocols.$length);
46554
+ _ref = protocols;
46555
+ _i = 0;
46556
+ while (true) {
46557
+ if (!(_i < _ref.$length)) { break; }
46558
+ i = _i;
46559
+ p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
46560
+ ((i < 0 || i >= jsProtocols.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsProtocols.$array[jsProtocols.$offset + i] = new $String(p));
46561
+ _i++;
46562
+ }
46563
+ _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; }
46564
+ WebSocket.copy(c[0], new WebSocket.ptr($clone(_r, js.Value)));
46565
+ $clone(c[0], WebSocket).setBinaryType("arraybuffer");
46566
+ _tmp = $clone(c[0], WebSocket);
46567
+ _tmp$1 = $ifaceNil;
46568
+ WebSocket.copy(c[0], _tmp);
46569
+ err[0] = _tmp$1;
46570
+ $24r = [c[0], err[0]];
46571
+ $s = 2; case 2: return $24r;
46572
+ /* */ } 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; } }
46573
+ };
46574
+ $pkg.New = New;
46575
+ WebSocket.ptr.prototype.setBinaryType = function(typ) {
46576
+ var c, typ;
46577
+ c = this;
46578
+ $clone(c.v, js.Value).Set("binaryType", new $String((typ)));
46579
+ };
46580
+ WebSocket.prototype.setBinaryType = function(typ) { return this.$val.setBinaryType(typ); };
46581
+ WebSocket.ptr.prototype.addEventListener = function(eventType, fn) {
46582
+ var {_r, c, eventType, f, fn, $s, $r, $c} = $restore(this, {eventType, fn});
46583
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46584
+ c = [c];
46585
+ eventType = [eventType];
46586
+ f = [f];
46587
+ fn = [fn];
46588
+ c[0] = this;
46589
+ f[0] = $clone(js.FuncOf((function(c, eventType, f, fn) { return function $b(this$1, args) {
46590
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
46591
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46592
+ $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; }
46593
+ $s = -1; return $ifaceNil;
46594
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
46595
+ }; })(c, eventType, f, fn)), js.Func);
46596
+ _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; }
46597
+ _r;
46598
+ $s = -1; return (function(c, eventType, f, fn) { return function $b() {
46599
+ var {_r$1, $s, $r, $c} = $restore(this, {});
46600
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46601
+ _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; }
46602
+ _r$1;
46603
+ $clone(f[0], js.Func).Release();
46604
+ $s = -1; return;
46605
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
46606
+ }; })(c, eventType, f, fn);
46607
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.addEventListener, $c: true, $r, _r, c, eventType, f, fn, $s};return $f;
46608
+ };
46609
+ WebSocket.prototype.addEventListener = function(eventType, fn) { return this.$val.addEventListener(eventType, fn); };
46610
+ WebSocket.ptr.prototype.OnClose = function(fn) {
46611
+ var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
46612
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46613
+ fn = [fn];
46614
+ remove = $throwNilPointerError;
46615
+ c = this;
46616
+ _r = $clone(c, WebSocket).addEventListener("close", (function(fn) { return function $b(e) {
46617
+ var {ce, e, $s, $r, $c} = $restore(this, {e});
46618
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46619
+ 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());
46620
+ $r = fn[0]($clone(ce, CloseEvent)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46621
+ $s = -1; return;
46622
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, ce, e, $s};return $f;
46623
+ }; })(fn)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
46624
+ remove = _r;
46625
+ $24r = remove;
46626
+ $s = 2; case 2: return $24r;
46627
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnClose, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
46628
+ };
46629
+ WebSocket.prototype.OnClose = function(fn) { return this.$val.OnClose(fn); };
46630
+ WebSocket.ptr.prototype.OnError = function(fn) {
46631
+ var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
46632
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46633
+ remove = $throwNilPointerError;
46634
+ c = this;
46635
+ _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; }
46636
+ remove = _r;
46637
+ $24r = remove;
46638
+ $s = 2; case 2: return $24r;
46639
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnError, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
46640
+ };
46641
+ WebSocket.prototype.OnError = function(fn) { return this.$val.OnError(fn); };
46642
+ WebSocket.ptr.prototype.OnMessage = function(fn) {
46643
+ var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
46644
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46645
+ fn = [fn];
46646
+ remove = $throwNilPointerError;
46647
+ c = this;
46648
+ _r = $clone(c, WebSocket).addEventListener("message", (function(fn) { return function $b(e) {
46649
+ var {_r, arrayBuffer, data, e, me, $s, $r, $c} = $restore(this, {e});
46650
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46651
+ data = $ifaceNil;
46652
+ arrayBuffer = $clone($clone(e, js.Value).Get("data"), js.Value);
46653
+ /* */ if ($clone(arrayBuffer, js.Value).Type() === 4) { $s = 1; continue; }
46654
+ /* */ $s = 2; continue;
46655
+ /* if ($clone(arrayBuffer, js.Value).Type() === 4) { */ case 1:
46656
+ data = new $String($clone(arrayBuffer, js.Value).String());
46657
+ $s = 3; continue;
46658
+ /* } else { */ case 2:
46659
+ _r = extractArrayBuffer($clone(arrayBuffer, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
46660
+ data = _r;
46661
+ /* } */ case 3:
46662
+ me = new MessageEvent.ptr(data);
46663
+ $r = fn[0]($clone(me, MessageEvent)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46664
+ $s = -1; return;
46665
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, arrayBuffer, data, e, me, $s};return $f;
46666
+ }; })(fn)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
46667
+ remove = _r;
46668
+ $24r = remove;
46669
+ $s = 2; case 2: return $24r;
46670
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnMessage, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
46671
+ };
46672
+ WebSocket.prototype.OnMessage = function(fn) { return this.$val.OnMessage(fn); };
46673
+ WebSocket.ptr.prototype.Subprotocol = function() {
46674
+ var c;
46675
+ c = this;
46676
+ return $clone($clone(c.v, js.Value).Get("protocol"), js.Value).String();
46677
+ };
46678
+ WebSocket.prototype.Subprotocol = function() { return this.$val.Subprotocol(); };
46679
+ WebSocket.ptr.prototype.OnOpen = function(fn) {
46680
+ var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
46681
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46682
+ remove = $throwNilPointerError;
46683
+ c = this;
46684
+ _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; }
46685
+ remove = _r;
46686
+ $24r = remove;
46687
+ $s = 2; case 2: return $24r;
46688
+ /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnOpen, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
46689
+ };
46690
+ WebSocket.prototype.OnOpen = function(fn) { return this.$val.OnOpen(fn); };
46691
+ WebSocket.ptr.prototype.Close = function(code, reason) {
46692
+ var {$24r, _r, c, code, err, reason, $s, $deferred, $r, $c} = $restore(this, {code, reason});
46693
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
46694
+ err = [err];
46695
+ err[0] = $ifaceNil;
46696
+ c = this;
46697
+ $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
46698
+ _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; }
46699
+ _r;
46700
+ err[0] = err[0];
46701
+ $24r = err[0];
46702
+ $s = 2; case 2: return $24r;
46703
+ /* */ } 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; } }
46704
+ };
46705
+ WebSocket.prototype.Close = function(code, reason) { return this.$val.Close(code, reason); };
46706
+ WebSocket.ptr.prototype.SendText = function(v) {
46707
+ var {$24r, _r, c, err, v, $s, $deferred, $r, $c} = $restore(this, {v});
46708
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
46709
+ err = [err];
46710
+ err[0] = $ifaceNil;
46711
+ c = this;
46712
+ $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
46713
+ _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; }
46714
+ _r;
46715
+ err[0] = err[0];
46716
+ $24r = err[0];
46717
+ $s = 2; case 2: return $24r;
46718
+ /* */ } 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; } }
46719
+ };
46720
+ WebSocket.prototype.SendText = function(v) { return this.$val.SendText(v); };
46721
+ WebSocket.ptr.prototype.SendBytes = function(v) {
46722
+ var {$24r, _arg, _r, _r$1, c, err, v, x, $s, $deferred, $r, $c} = $restore(this, {v});
46723
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
46724
+ err = [err];
46725
+ err[0] = $ifaceNil;
46726
+ c = this;
46727
+ $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
46728
+ _r = uint8Array(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
46729
+ _arg = (x = _r, new x.constructor.elem(x));
46730
+ _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; }
46731
+ _r$1;
46732
+ err[0] = err[0];
46733
+ $24r = err[0];
46734
+ $s = 3; case 3: return $24r;
46735
+ /* */ } 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; } }
46736
+ };
46737
+ WebSocket.prototype.SendBytes = function(v) { return this.$val.SendBytes(v); };
46738
+ extractArrayBuffer = function(arrayBuffer) {
46739
+ var {_r, arrayBuffer, dst, uint8Array$1, $s, $r, $c} = $restore(this, {arrayBuffer});
46740
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46741
+ _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; }
46742
+ uint8Array$1 = $clone(_r, js.Value);
46743
+ dst = $makeSlice(sliceType$1, $clone(uint8Array$1, js.Value).Length());
46744
+ js.CopyBytesToGo(dst, $clone(uint8Array$1, js.Value));
46745
+ $s = -1; return dst;
46746
+ /* */ } return; } var $f = {$blk: extractArrayBuffer, $c: true, $r, _r, arrayBuffer, dst, uint8Array$1, $s};return $f;
46747
+ };
46748
+ uint8Array = function(src) {
46749
+ var {_r, src, uint8Array$1, $s, $r, $c} = $restore(this, {src});
46750
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
46751
+ _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; }
46752
+ uint8Array$1 = $clone(_r, js.Value);
46753
+ js.CopyBytesToJS($clone(uint8Array$1, js.Value), src);
46754
+ $s = -1; return uint8Array$1;
46755
+ /* */ } return; } var $f = {$blk: uint8Array, $c: true, $r, _r, src, uint8Array$1, $s};return $f;
46756
+ };
46757
+ 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)}];
46758
+ WebSocket.init("github.com/coder/websocket/internal/wsjs", [{prop: "v", name: "v", embedded: false, exported: false, typ: js.Value, tag: ""}]);
46759
+ 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: ""}]);
46760
+ MessageEvent.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: $emptyInterface, tag: ""}]);
46761
+ $init = function() {
46762
+ $pkg.$init = function() {};
46763
+ /* */ 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:
46764
+ $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46765
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
46766
+ };
46767
+ $pkg.$init = $init;
46768
+ return $pkg;
46769
+ })();
46770
+ $packages["runtime/debug"] = (function() {
46771
+ var $pkg = {}, $init, fmt, os, runtime, sort, strconv, strings, time;
46772
+ fmt = $packages["fmt"];
46773
+ os = $packages["os"];
46774
+ runtime = $packages["runtime"];
46775
+ sort = $packages["sort"];
46776
+ strconv = $packages["strconv"];
46777
+ strings = $packages["strings"];
46778
+ time = $packages["time"];
46779
+ $init = function() {
46780
+ $pkg.$init = function() {};
46781
+ /* */ 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:
46782
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46783
+ $r = os.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46784
+ $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46785
+ $r = sort.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46786
+ $r = strconv.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46787
+ $r = strings.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46788
+ $r = time.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46789
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
46790
+ };
46791
+ $pkg.$init = $init;
46792
+ return $pkg;
46793
+ })();
46794
+ $packages["github.com/coder/websocket/internal/xsync"] = (function() {
46795
+ var $pkg = {}, $init, fmt, debug, atomic, Int64, ptrType;
46796
+ fmt = $packages["fmt"];
46797
+ debug = $packages["runtime/debug"];
46798
+ atomic = $packages["sync/atomic"];
46799
+ Int64 = $pkg.Int64 = $newType(0, $kindStruct, "xsync.Int64", true, "github.com/coder/websocket/internal/xsync", true, function(i_) {
46800
+ this.$val = this;
46801
+ if (arguments.length === 0) {
46802
+ this.i = new atomic.Value.ptr($ifaceNil);
46803
+ return;
46804
+ }
46805
+ this.i = i_;
46806
+ });
46807
+ ptrType = $ptrType(Int64);
46808
+ Int64.ptr.prototype.Load = function() {
46809
+ var _tuple, i, v;
46810
+ v = this;
46811
+ _tuple = $assertType(v.i.Load(), $Int64, true);
46812
+ i = _tuple[0];
46813
+ return i;
46814
+ };
46815
+ Int64.prototype.Load = function() { return this.$val.Load(); };
46816
+ Int64.ptr.prototype.Store = function(i) {
46817
+ var i, v;
46818
+ v = this;
46819
+ v.i.Store(i);
46820
+ };
46821
+ Int64.prototype.Store = function(i) { return this.$val.Store(i); };
46822
+ ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int64], [], false)}];
46823
+ Int64.init("github.com/coder/websocket/internal/xsync", [{prop: "i", name: "i", embedded: false, exported: false, typ: atomic.Value, tag: ""}]);
46824
+ $init = function() {
46825
+ $pkg.$init = function() {};
46826
+ /* */ 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:
46827
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46828
+ $r = debug.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46829
+ $r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
46830
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
46831
+ };
46832
+ $pkg.$init = $init;
46833
+ return $pkg;
46834
+ })();
46424
46835
  $packages["internal/nettrace"] = (function() {
46425
46836
  var $pkg = {}, $init, TraceKey, LookupIPAltResolverKey, Trace, funcType, sliceType, funcType$1, funcType$2, funcType$3;
46426
46837
  TraceKey = $pkg.TraceKey = $newType(0, $kindStruct, "nettrace.TraceKey", true, "internal/nettrace", true, function() {
@@ -157129,442 +157540,70 @@ $packages["net/http"] = (function() {
157129
157540
  $pkg.$init = $init;
157130
157541
  return $pkg;
157131
157542
  })();
157132
- $packages["nhooyr.io/websocket/internal/bpool"] = (function() {
157133
- var $pkg = {}, $init, bytes, sync, sliceType, sliceType$1, ptrType, bpool, Get, Put;
157134
- bytes = $packages["bytes"];
157135
- sync = $packages["sync"];
157136
- sliceType = $sliceType($emptyInterface);
157137
- sliceType$1 = $sliceType($Uint8);
157138
- ptrType = $ptrType(bytes.Buffer);
157139
- Get = function() {
157140
- var {_r, b, $s, $r, $c} = $restore(this, {});
157141
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157142
- _r = bpool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157143
- b = _r;
157144
- if ($interfaceIsEqual(b, $ifaceNil)) {
157145
- $s = -1; return new bytes.Buffer.ptr(sliceType$1.nil, 0, 0);
157146
- }
157147
- $s = -1; return $assertType(b, ptrType);
157148
- /* */ } return; } var $f = {$blk: Get, $c: true, $r, _r, b, $s};return $f;
157149
- };
157150
- $pkg.Get = Get;
157151
- Put = function(b) {
157152
- var b;
157153
- b.Reset();
157154
- bpool.Put(b);
157155
- };
157156
- $pkg.Put = Put;
157157
- $init = function() {
157158
- $pkg.$init = function() {};
157159
- /* */ 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:
157160
- $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157161
- $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157162
- bpool = new sync.Pool.ptr(sliceType.nil, $throwNilPointerError);
157163
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
157164
- };
157165
- $pkg.$init = $init;
157166
- return $pkg;
157167
- })();
157168
- $packages["nhooyr.io/websocket/internal/errd"] = (function() {
157169
- var $pkg = {}, $init, fmt;
157170
- fmt = $packages["fmt"];
157171
- $init = function() {
157172
- $pkg.$init = function() {};
157173
- /* */ 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:
157174
- $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157175
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
157176
- };
157177
- $pkg.$init = $init;
157178
- return $pkg;
157179
- })();
157180
- $packages["nhooyr.io/websocket/internal/wsjs"] = (function() {
157181
- var $pkg = {}, $init, js, WebSocket, CloseEvent, MessageEvent, funcType, arrayType, ptrType, sliceType, sliceType$1, funcType$1, funcType$2, funcType$3, handleJSError, New, extractArrayBuffer, uint8Array;
157182
- js = $packages["syscall/js"];
157183
- WebSocket = $pkg.WebSocket = $newType(0, $kindStruct, "wsjs.WebSocket", true, "nhooyr.io/websocket/internal/wsjs", true, function(v_) {
157184
- this.$val = this;
157185
- if (arguments.length === 0) {
157186
- this.v = new js.Value.ptr(null, false, arrayType.zero());
157187
- return;
157188
- }
157189
- this.v = v_;
157190
- });
157191
- CloseEvent = $pkg.CloseEvent = $newType(0, $kindStruct, "wsjs.CloseEvent", true, "nhooyr.io/websocket/internal/wsjs", true, function(Code_, Reason_, WasClean_) {
157192
- this.$val = this;
157193
- if (arguments.length === 0) {
157194
- this.Code = 0;
157195
- this.Reason = "";
157196
- this.WasClean = false;
157197
- return;
157198
- }
157199
- this.Code = Code_;
157200
- this.Reason = Reason_;
157201
- this.WasClean = WasClean_;
157202
- });
157203
- MessageEvent = $pkg.MessageEvent = $newType(0, $kindStruct, "wsjs.MessageEvent", true, "nhooyr.io/websocket/internal/wsjs", true, function(Data_) {
157204
- this.$val = this;
157205
- if (arguments.length === 0) {
157206
- this.Data = $ifaceNil;
157207
- return;
157208
- }
157209
- this.Data = Data_;
157210
- });
157211
- funcType = $funcType([], [], false);
157212
- arrayType = $arrayType(funcType, 0);
157213
- ptrType = $ptrType($error);
157214
- sliceType = $sliceType($emptyInterface);
157215
- sliceType$1 = $sliceType($Uint8);
157216
- funcType$1 = $funcType([js.Value], [], false);
157217
- funcType$2 = $funcType([CloseEvent], [], false);
157218
- funcType$3 = $funcType([MessageEvent], [], false);
157219
- handleJSError = function(err, onErr) {
157220
- var {_tuple, err, jsErr, ok, onErr, r, $s, $r, $c} = $restore(this, {err, onErr});
157221
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157222
- r = $recover();
157223
- _tuple = $assertType(r, js.Error, true);
157224
- jsErr = $clone(_tuple[0], js.Error);
157225
- ok = _tuple[1];
157226
- /* */ if (ok) { $s = 1; continue; }
157227
- /* */ $s = 2; continue;
157228
- /* if (ok) { */ case 1:
157229
- err.$set(new jsErr.constructor.elem(jsErr));
157230
- /* */ if (!(onErr === $throwNilPointerError)) { $s = 3; continue; }
157231
- /* */ $s = 4; continue;
157232
- /* if (!(onErr === $throwNilPointerError)) { */ case 3:
157233
- $r = onErr(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157234
- /* } */ case 4:
157235
- $s = -1; return;
157236
- /* } */ case 2:
157237
- if (!($interfaceIsEqual(r, $ifaceNil))) {
157238
- $panic(r);
157239
- }
157240
- $s = -1; return;
157241
- /* */ } return; } var $f = {$blk: handleJSError, $c: true, $r, _tuple, err, jsErr, ok, onErr, r, $s};return $f;
157242
- };
157243
- New = function(url, protocols) {
157244
- var {$24r, _i, _r, _ref, _tmp, _tmp$1, c, err, i, jsProtocols, p, protocols, url, $s, $deferred, $r, $c} = $restore(this, {url, protocols});
157245
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
157246
- c = [c];
157247
- err = [err];
157248
- c[0] = new WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero()));
157249
- err[0] = $ifaceNil;
157250
- $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() {
157251
- WebSocket.copy(c[0], new WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero())));
157252
- }; })(c, err)]]);
157253
- jsProtocols = $makeSlice(sliceType, protocols.$length);
157254
- _ref = protocols;
157255
- _i = 0;
157256
- while (true) {
157257
- if (!(_i < _ref.$length)) { break; }
157258
- i = _i;
157259
- p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
157260
- ((i < 0 || i >= jsProtocols.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsProtocols.$array[jsProtocols.$offset + i] = new $String(p));
157261
- _i++;
157262
- }
157263
- _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; }
157264
- WebSocket.copy(c[0], new WebSocket.ptr($clone(_r, js.Value)));
157265
- $clone(c[0], WebSocket).setBinaryType("arraybuffer");
157266
- _tmp = $clone(c[0], WebSocket);
157267
- _tmp$1 = $ifaceNil;
157268
- WebSocket.copy(c[0], _tmp);
157269
- err[0] = _tmp$1;
157270
- $24r = [c[0], err[0]];
157271
- $s = 2; case 2: return $24r;
157272
- /* */ } 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; } }
157273
- };
157274
- $pkg.New = New;
157275
- WebSocket.ptr.prototype.setBinaryType = function(typ) {
157276
- var c, typ;
157277
- c = this;
157278
- $clone(c.v, js.Value).Set("binaryType", new $String((typ)));
157279
- };
157280
- WebSocket.prototype.setBinaryType = function(typ) { return this.$val.setBinaryType(typ); };
157281
- WebSocket.ptr.prototype.addEventListener = function(eventType, fn) {
157282
- var {_r, c, eventType, f, fn, $s, $r, $c} = $restore(this, {eventType, fn});
157283
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157284
- c = [c];
157285
- eventType = [eventType];
157286
- f = [f];
157287
- fn = [fn];
157288
- c[0] = this;
157289
- f[0] = $clone(js.FuncOf((function(c, eventType, f, fn) { return function $b(this$1, args) {
157290
- var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
157291
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157292
- $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; }
157293
- $s = -1; return $ifaceNil;
157294
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
157295
- }; })(c, eventType, f, fn)), js.Func);
157296
- _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; }
157297
- _r;
157298
- $s = -1; return (function(c, eventType, f, fn) { return function $b() {
157299
- var {_r$1, $s, $r, $c} = $restore(this, {});
157300
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157301
- _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; }
157302
- _r$1;
157303
- $clone(f[0], js.Func).Release();
157304
- $s = -1; return;
157305
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
157306
- }; })(c, eventType, f, fn);
157307
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.addEventListener, $c: true, $r, _r, c, eventType, f, fn, $s};return $f;
157308
- };
157309
- WebSocket.prototype.addEventListener = function(eventType, fn) { return this.$val.addEventListener(eventType, fn); };
157310
- WebSocket.ptr.prototype.OnClose = function(fn) {
157311
- var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
157312
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157313
- fn = [fn];
157314
- remove = $throwNilPointerError;
157315
- c = this;
157316
- _r = $clone(c, WebSocket).addEventListener("close", (function(fn) { return function $b(e) {
157317
- var {ce, e, $s, $r, $c} = $restore(this, {e});
157318
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157319
- 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());
157320
- $r = fn[0]($clone(ce, CloseEvent)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157321
- $s = -1; return;
157322
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, ce, e, $s};return $f;
157323
- }; })(fn)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157324
- remove = _r;
157325
- $24r = remove;
157326
- $s = 2; case 2: return $24r;
157327
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnClose, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
157328
- };
157329
- WebSocket.prototype.OnClose = function(fn) { return this.$val.OnClose(fn); };
157330
- WebSocket.ptr.prototype.OnError = function(fn) {
157331
- var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
157332
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157333
- remove = $throwNilPointerError;
157334
- c = this;
157335
- _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; }
157336
- remove = _r;
157337
- $24r = remove;
157338
- $s = 2; case 2: return $24r;
157339
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnError, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
157340
- };
157341
- WebSocket.prototype.OnError = function(fn) { return this.$val.OnError(fn); };
157342
- WebSocket.ptr.prototype.OnMessage = function(fn) {
157343
- var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
157344
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157345
- fn = [fn];
157346
- remove = $throwNilPointerError;
157347
- c = this;
157348
- _r = $clone(c, WebSocket).addEventListener("message", (function(fn) { return function $b(e) {
157349
- var {_r, arrayBuffer, data, e, me, $s, $r, $c} = $restore(this, {e});
157350
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157351
- data = $ifaceNil;
157352
- arrayBuffer = $clone($clone(e, js.Value).Get("data"), js.Value);
157353
- /* */ if ($clone(arrayBuffer, js.Value).Type() === 4) { $s = 1; continue; }
157354
- /* */ $s = 2; continue;
157355
- /* if ($clone(arrayBuffer, js.Value).Type() === 4) { */ case 1:
157356
- data = new $String($clone(arrayBuffer, js.Value).String());
157357
- $s = 3; continue;
157358
- /* } else { */ case 2:
157359
- _r = extractArrayBuffer($clone(arrayBuffer, js.Value)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157360
- data = _r;
157361
- /* } */ case 3:
157362
- me = new MessageEvent.ptr(data);
157363
- $r = fn[0]($clone(me, MessageEvent)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157364
- $s = -1; return;
157365
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, arrayBuffer, data, e, me, $s};return $f;
157366
- }; })(fn)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157367
- remove = _r;
157368
- $24r = remove;
157369
- $s = 2; case 2: return $24r;
157370
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnMessage, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
157371
- };
157372
- WebSocket.prototype.OnMessage = function(fn) { return this.$val.OnMessage(fn); };
157373
- WebSocket.ptr.prototype.Subprotocol = function() {
157374
- var c;
157375
- c = this;
157376
- return $clone($clone(c.v, js.Value).Get("protocol"), js.Value).String();
157377
- };
157378
- WebSocket.prototype.Subprotocol = function() { return this.$val.Subprotocol(); };
157379
- WebSocket.ptr.prototype.OnOpen = function(fn) {
157380
- var {$24r, _r, c, fn, remove, $s, $r, $c} = $restore(this, {fn});
157381
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157382
- remove = $throwNilPointerError;
157383
- c = this;
157384
- _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; }
157385
- remove = _r;
157386
- $24r = remove;
157387
- $s = 2; case 2: return $24r;
157388
- /* */ } return; } var $f = {$blk: WebSocket.ptr.prototype.OnOpen, $c: true, $r, $24r, _r, c, fn, remove, $s};return $f;
157389
- };
157390
- WebSocket.prototype.OnOpen = function(fn) { return this.$val.OnOpen(fn); };
157391
- WebSocket.ptr.prototype.Close = function(code, reason) {
157392
- var {$24r, _r, c, code, err, reason, $s, $deferred, $r, $c} = $restore(this, {code, reason});
157393
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
157394
- err = [err];
157395
- err[0] = $ifaceNil;
157396
- c = this;
157397
- $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
157398
- _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; }
157399
- _r;
157400
- err[0] = err[0];
157401
- $24r = err[0];
157402
- $s = 2; case 2: return $24r;
157403
- /* */ } 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; } }
157404
- };
157405
- WebSocket.prototype.Close = function(code, reason) { return this.$val.Close(code, reason); };
157406
- WebSocket.ptr.prototype.SendText = function(v) {
157407
- var {$24r, _r, c, err, v, $s, $deferred, $r, $c} = $restore(this, {v});
157408
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
157409
- err = [err];
157410
- err[0] = $ifaceNil;
157411
- c = this;
157412
- $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
157413
- _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; }
157414
- _r;
157415
- err[0] = err[0];
157416
- $24r = err[0];
157417
- $s = 2; case 2: return $24r;
157418
- /* */ } 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; } }
157419
- };
157420
- WebSocket.prototype.SendText = function(v) { return this.$val.SendText(v); };
157421
- WebSocket.ptr.prototype.SendBytes = function(v) {
157422
- var {$24r, _arg, _r, _r$1, c, err, v, x, $s, $deferred, $r, $c} = $restore(this, {v});
157423
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
157424
- err = [err];
157425
- err[0] = $ifaceNil;
157426
- c = this;
157427
- $deferred.push([handleJSError, [(err.$ptr || (err.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, err))), $throwNilPointerError]]);
157428
- _r = uint8Array(v); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157429
- _arg = (x = _r, new x.constructor.elem(x));
157430
- _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; }
157431
- _r$1;
157432
- err[0] = err[0];
157433
- $24r = err[0];
157434
- $s = 3; case 3: return $24r;
157435
- /* */ } 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; } }
157436
- };
157437
- WebSocket.prototype.SendBytes = function(v) { return this.$val.SendBytes(v); };
157438
- extractArrayBuffer = function(arrayBuffer) {
157439
- var {_r, arrayBuffer, dst, uint8Array$1, $s, $r, $c} = $restore(this, {arrayBuffer});
157440
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157441
- _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; }
157442
- uint8Array$1 = $clone(_r, js.Value);
157443
- dst = $makeSlice(sliceType$1, $clone(uint8Array$1, js.Value).Length());
157444
- js.CopyBytesToGo(dst, $clone(uint8Array$1, js.Value));
157445
- $s = -1; return dst;
157446
- /* */ } return; } var $f = {$blk: extractArrayBuffer, $c: true, $r, _r, arrayBuffer, dst, uint8Array$1, $s};return $f;
157447
- };
157448
- uint8Array = function(src) {
157449
- var {_r, src, uint8Array$1, $s, $r, $c} = $restore(this, {src});
157450
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157451
- _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; }
157452
- uint8Array$1 = $clone(_r, js.Value);
157453
- js.CopyBytesToJS($clone(uint8Array$1, js.Value), src);
157454
- $s = -1; return uint8Array$1;
157455
- /* */ } return; } var $f = {$blk: uint8Array, $c: true, $r, _r, src, uint8Array$1, $s};return $f;
157456
- };
157457
- 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)}];
157458
- WebSocket.init("nhooyr.io/websocket/internal/wsjs", [{prop: "v", name: "v", embedded: false, exported: false, typ: js.Value, tag: ""}]);
157459
- 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: ""}]);
157460
- MessageEvent.init("", [{prop: "Data", name: "Data", embedded: false, exported: true, typ: $emptyInterface, tag: ""}]);
157461
- $init = function() {
157462
- $pkg.$init = function() {};
157463
- /* */ 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:
157464
- $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157465
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
157466
- };
157467
- $pkg.$init = $init;
157468
- return $pkg;
157469
- })();
157470
- $packages["nhooyr.io/websocket/internal/xsync"] = (function() {
157471
- var $pkg = {}, $init, fmt, atomic, Int64, ptrType;
157472
- fmt = $packages["fmt"];
157473
- atomic = $packages["sync/atomic"];
157474
- Int64 = $pkg.Int64 = $newType(0, $kindStruct, "xsync.Int64", true, "nhooyr.io/websocket/internal/xsync", true, function(i_) {
157475
- this.$val = this;
157476
- if (arguments.length === 0) {
157477
- this.i = new atomic.Value.ptr($ifaceNil);
157478
- return;
157479
- }
157480
- this.i = i_;
157481
- });
157482
- ptrType = $ptrType(Int64);
157483
- Int64.ptr.prototype.Load = function() {
157484
- var _tuple, i, v;
157485
- v = this;
157486
- _tuple = $assertType(v.i.Load(), $Int64, true);
157487
- i = _tuple[0];
157488
- return i;
157489
- };
157490
- Int64.prototype.Load = function() { return this.$val.Load(); };
157491
- Int64.ptr.prototype.Store = function(i) {
157492
- var i, v;
157493
- v = this;
157494
- v.i.Store(i);
157495
- };
157496
- Int64.prototype.Store = function(i) { return this.$val.Store(i); };
157497
- ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$Int64], [], false)}];
157498
- Int64.init("nhooyr.io/websocket/internal/xsync", [{prop: "i", name: "i", embedded: false, exported: false, typ: atomic.Value, tag: ""}]);
157499
- $init = function() {
157500
- $pkg.$init = function() {};
157501
- /* */ 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:
157502
- $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157503
- $r = atomic.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157504
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
157505
- };
157506
- $pkg.$init = $init;
157507
- return $pkg;
157508
- })();
157509
- $packages["nhooyr.io/websocket"] = (function() {
157510
- 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;
157511
- bufio = $packages["bufio"];
157543
+ $packages["github.com/coder/websocket"] = (function() {
157544
+ 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;
157512
157545
  bytes = $packages["bytes"];
157513
157546
  context = $packages["context"];
157514
157547
  binary = $packages["encoding/binary"];
157515
157548
  errors = $packages["errors"];
157516
157549
  fmt = $packages["fmt"];
157550
+ bpool = $packages["github.com/coder/websocket/internal/bpool"];
157551
+ wsjs = $packages["github.com/coder/websocket/internal/wsjs"];
157552
+ xsync = $packages["github.com/coder/websocket/internal/xsync"];
157517
157553
  io = $packages["io"];
157518
157554
  math = $packages["math"];
157519
157555
  bits = $packages["math/bits"];
157520
157556
  net = $packages["net"];
157521
157557
  http = $packages["net/http"];
157522
- bpool = $packages["nhooyr.io/websocket/internal/bpool"];
157523
- errd = $packages["nhooyr.io/websocket/internal/errd"];
157524
- wsjs = $packages["nhooyr.io/websocket/internal/wsjs"];
157525
- xsync = $packages["nhooyr.io/websocket/internal/xsync"];
157526
157558
  reflect = $packages["reflect"];
157527
157559
  runtime = $packages["runtime"];
157528
157560
  strconv = $packages["strconv"];
157529
157561
  strings = $packages["strings"];
157530
157562
  sync = $packages["sync"];
157563
+ atomic = $packages["sync/atomic"];
157531
157564
  js = $packages["syscall/js"];
157532
157565
  time = $packages["time"];
157533
- 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_) {
157566
+ 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_) {
157534
157567
  this.$val = this;
157535
157568
  if (arguments.length === 0) {
157569
+ this.noCopy = new noCopy.ptr();
157536
157570
  this.ws = new wsjs.WebSocket.ptr(new js.Value.ptr(null, false, arrayType.zero()));
157537
- this.msgReadLimit = new xsync.Int64.ptr(new $packages["sync/atomic"].Value.ptr($ifaceNil));
157571
+ this.msgReadLimit = new xsync.Int64.ptr(new atomic.Value.ptr($ifaceNil));
157572
+ this.closeReadMu = new sync.Mutex.ptr(0, 0);
157573
+ this.closeReadCtx = $ifaceNil;
157538
157574
  this.closingMu = new sync.Mutex.ptr(0, 0);
157539
- this.isReadClosed = new xsync.Int64.ptr(new $packages["sync/atomic"].Value.ptr($ifaceNil));
157540
157575
  this.closeOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0));
157541
157576
  this.closed = $chanNil;
157542
157577
  this.closeErrOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0));
157543
157578
  this.closeErr = $ifaceNil;
157544
157579
  this.closeWasClean = false;
157545
157580
  this.releaseOnClose = $throwNilPointerError;
157581
+ this.releaseOnError = $throwNilPointerError;
157546
157582
  this.releaseOnMessage = $throwNilPointerError;
157547
157583
  this.readSignal = $chanNil;
157548
157584
  this.readBufMu = new sync.Mutex.ptr(0, 0);
157549
157585
  this.readBuf = sliceType$3.nil;
157550
157586
  return;
157551
157587
  }
157588
+ this.noCopy = noCopy_;
157552
157589
  this.ws = ws_;
157553
157590
  this.msgReadLimit = msgReadLimit_;
157591
+ this.closeReadMu = closeReadMu_;
157592
+ this.closeReadCtx = closeReadCtx_;
157554
157593
  this.closingMu = closingMu_;
157555
- this.isReadClosed = isReadClosed_;
157556
157594
  this.closeOnce = closeOnce_;
157557
157595
  this.closed = closed_;
157558
157596
  this.closeErrOnce = closeErrOnce_;
157559
157597
  this.closeErr = closeErr_;
157560
157598
  this.closeWasClean = closeWasClean_;
157561
157599
  this.releaseOnClose = releaseOnClose_;
157600
+ this.releaseOnError = releaseOnError_;
157562
157601
  this.releaseOnMessage = releaseOnMessage_;
157563
157602
  this.readSignal = readSignal_;
157564
157603
  this.readBufMu = readBufMu_;
157565
157604
  this.readBuf = readBuf_;
157566
157605
  });
157567
- DialOptions = $pkg.DialOptions = $newType(0, $kindStruct, "websocket.DialOptions", true, "nhooyr.io/websocket", true, function(Subprotocols_) {
157606
+ DialOptions = $pkg.DialOptions = $newType(0, $kindStruct, "websocket.DialOptions", true, "github.com/coder/websocket", true, function(Subprotocols_) {
157568
157607
  this.$val = this;
157569
157608
  if (arguments.length === 0) {
157570
157609
  this.Subprotocols = sliceType$2.nil;
@@ -157572,14 +157611,14 @@ $packages["nhooyr.io/websocket"] = (function() {
157572
157611
  }
157573
157612
  this.Subprotocols = Subprotocols_;
157574
157613
  });
157575
- writer = $pkg.writer = $newType(0, $kindStruct, "websocket.writer", true, "nhooyr.io/websocket", false, function(closed_, c_, ctx_, typ_, b_) {
157614
+ writer = $pkg.writer = $newType(0, $kindStruct, "websocket.writer", true, "github.com/coder/websocket", false, function(closed_, c_, ctx_, typ_, b_) {
157576
157615
  this.$val = this;
157577
157616
  if (arguments.length === 0) {
157578
157617
  this.closed = false;
157579
157618
  this.c = ptrType.nil;
157580
157619
  this.ctx = $ifaceNil;
157581
157620
  this.typ = 0;
157582
- this.b = ptrType$6.nil;
157621
+ this.b = ptrType$7.nil;
157583
157622
  return;
157584
157623
  }
157585
157624
  this.closed = closed_;
@@ -157588,9 +157627,8 @@ $packages["nhooyr.io/websocket"] = (function() {
157588
157627
  this.typ = typ_;
157589
157628
  this.b = b_;
157590
157629
  });
157591
- MessageType = $pkg.MessageType = $newType(4, $kindInt, "websocket.MessageType", true, "nhooyr.io/websocket", true, null);
157592
- StatusCode = $pkg.StatusCode = $newType(4, $kindInt, "websocket.StatusCode", true, "nhooyr.io/websocket", true, null);
157593
- CloseError = $pkg.CloseError = $newType(0, $kindStruct, "websocket.CloseError", true, "nhooyr.io/websocket", true, function(Code_, Reason_) {
157630
+ StatusCode = $pkg.StatusCode = $newType(4, $kindInt, "websocket.StatusCode", true, "github.com/coder/websocket", true, null);
157631
+ CloseError = $pkg.CloseError = $newType(0, $kindStruct, "websocket.CloseError", true, "github.com/coder/websocket", true, function(Code_, Reason_) {
157594
157632
  this.$val = this;
157595
157633
  if (arguments.length === 0) {
157596
157634
  this.Code = 0;
@@ -157600,21 +157638,30 @@ $packages["nhooyr.io/websocket"] = (function() {
157600
157638
  this.Code = Code_;
157601
157639
  this.Reason = Reason_;
157602
157640
  });
157641
+ MessageType = $pkg.MessageType = $newType(4, $kindInt, "websocket.MessageType", true, "github.com/coder/websocket", true, null);
157642
+ noCopy = $pkg.noCopy = $newType(0, $kindStruct, "websocket.noCopy", true, "github.com/coder/websocket", false, function() {
157643
+ this.$val = this;
157644
+ if (arguments.length === 0) {
157645
+ return;
157646
+ }
157647
+ });
157603
157648
  ptrType = $ptrType(Conn);
157604
157649
  sliceType = $sliceType($emptyInterface);
157605
157650
  structType = $structType("", []);
157606
157651
  funcType = $funcType([ptrType], [], false);
157607
157652
  sliceType$1 = $sliceType($Uint8);
157608
- ptrType$2 = $ptrType(http.Response);
157609
- ptrType$3 = $ptrType(DialOptions);
157653
+ ptrType$3 = $ptrType(http.Response);
157654
+ ptrType$4 = $ptrType(DialOptions);
157610
157655
  sliceType$2 = $sliceType($String);
157611
157656
  funcType$1 = $funcType([], [], false);
157612
157657
  arrayType = $arrayType(funcType$1, 0);
157613
157658
  sliceType$3 = $sliceType(wsjs.MessageEvent);
157614
- ptrType$4 = $ptrType(http.Request);
157615
- ptrType$5 = $ptrType($packages["crypto/tls"].ConnectionState);
157616
- ptrType$6 = $ptrType(bytes.Buffer);
157659
+ ptrType$5 = $ptrType(http.Request);
157660
+ ptrType$6 = $ptrType($packages["crypto/tls"].ConnectionState);
157661
+ ptrType$7 = $ptrType(bytes.Buffer);
157617
157662
  chanType = $chanType(structType, false, false);
157663
+ ptrType$9 = $ptrType(writer);
157664
+ ptrType$10 = $ptrType(noCopy);
157618
157665
  Conn.ptr.prototype.close = function(err, wasClean) {
157619
157666
  var {c, err, wasClean, $s, $r, $c} = $restore(this, {err, wasClean});
157620
157667
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -157643,7 +157690,7 @@ $packages["nhooyr.io/websocket"] = (function() {
157643
157690
  };
157644
157691
  Conn.prototype.close = function(err, wasClean) { return this.$val.close(err, wasClean); };
157645
157692
  Conn.ptr.prototype.init = function() {
157646
- var {_r, _r$1, c, $s, $r, $c} = $restore(this, {});
157693
+ var {_r, _r$1, _r$2, c, $s, $r, $c} = $restore(this, {});
157647
157694
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157648
157695
  c = [c];
157649
157696
  c[0] = this;
@@ -157656,12 +157703,22 @@ $packages["nhooyr.io/websocket"] = (function() {
157656
157703
  err = new CloseError.ptr(((e.Code >> 0)), e.Reason);
157657
157704
  $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; }
157658
157705
  $r = c[0].releaseOnClose(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157659
- $r = c[0].releaseOnMessage(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157706
+ $r = c[0].releaseOnError(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157707
+ $r = c[0].releaseOnMessage(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157660
157708
  $s = -1; return;
157661
157709
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, e, err, $s};return $f;
157662
157710
  }; })(c)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157663
157711
  c[0].releaseOnClose = _r;
157664
- _r$1 = $clone(c[0].ws, wsjs.WebSocket).OnMessage((function(c) { return function $b(e) {
157712
+ _r$1 = $clone(c[0].ws, wsjs.WebSocket).OnError((function(c) { return function $b(v) {
157713
+ var {v, $s, $r, $c} = $restore(this, {v});
157714
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157715
+ $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; }
157716
+ $r = c[0].closeWithInternal(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157717
+ $s = -1; return;
157718
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, v, $s};return $f;
157719
+ }; })(c)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
157720
+ c[0].releaseOnError = _r$1;
157721
+ _r$2 = $clone(c[0].ws, wsjs.WebSocket).OnMessage((function(c) { return function $b(e) {
157665
157722
  var {_selection, e, $s, $deferred, $r, $c} = $restore(this, {e});
157666
157723
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
157667
157724
  $r = c[0].readBufMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -157673,8 +157730,8 @@ $packages["nhooyr.io/websocket"] = (function() {
157673
157730
  }
157674
157731
  $s = -1; return;
157675
157732
  /* */ } 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; } }
157676
- }; })(c)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
157677
- c[0].releaseOnMessage = _r$1;
157733
+ }; })(c)); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
157734
+ c[0].releaseOnMessage = _r$2;
157678
157735
  runtime.SetFinalizer(c[0], new funcType((function(c) { return function $b(c$1) {
157679
157736
  var {c$1, $s, $r, $c} = $restore(this, {c$1});
157680
157737
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
@@ -157684,7 +157741,7 @@ $packages["nhooyr.io/websocket"] = (function() {
157684
157741
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, c$1, $s};return $f;
157685
157742
  }; })(c)));
157686
157743
  $s = -1; return;
157687
- /* */ } return; } var $f = {$blk: Conn.ptr.prototype.init, $c: true, $r, _r, _r$1, c, $s};return $f;
157744
+ /* */ } return; } var $f = {$blk: Conn.ptr.prototype.init, $c: true, $r, _r, _r$1, _r$2, c, $s};return $f;
157688
157745
  };
157689
157746
  Conn.prototype.init = function() { return this.$val.init(); };
157690
157747
  Conn.ptr.prototype.closeWithInternal = function() {
@@ -157698,37 +157755,41 @@ $packages["nhooyr.io/websocket"] = (function() {
157698
157755
  };
157699
157756
  Conn.prototype.closeWithInternal = function() { return this.$val.closeWithInternal(); };
157700
157757
  Conn.ptr.prototype.Read = function(ctx) {
157701
- 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});
157758
+ 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});
157702
157759
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157703
157760
  c = this;
157704
- if ((x = c.isReadClosed.Load(), (x.$high === 0 && x.$low === 1))) {
157761
+ $r = c.closeReadMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157762
+ closedRead = !($interfaceIsEqual(c.closeReadCtx, $ifaceNil));
157763
+ $r = c.closeReadMu.Unlock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157764
+ if (closedRead) {
157705
157765
  $s = -1; return [0, sliceType$1.nil, errors.New("WebSocket connection read closed")];
157706
157766
  }
157707
- _r = c.read(ctx); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157767
+ _r = c.read(ctx); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157708
157768
  _tuple = _r;
157709
157769
  typ = _tuple[0];
157710
157770
  p = _tuple[1];
157711
157771
  err = _tuple[2];
157712
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
157713
- /* */ $s = 3; continue;
157714
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
157715
- _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; }
157772
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 4; continue; }
157773
+ /* */ $s = 5; continue;
157774
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 4:
157775
+ _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; }
157716
157776
  $24r = [0, sliceType$1.nil, _r$1];
157717
- $s = 5; case 5: return $24r;
157718
- /* } */ case 3:
157719
- /* */ 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; }
157720
- /* */ $s = 7; continue;
157721
- /* 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:
157722
- _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; }
157777
+ $s = 7; case 7: return $24r;
157778
+ /* } */ case 5:
157779
+ readLimit = c.msgReadLimit.Load();
157780
+ /* */ 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; }
157781
+ /* */ $s = 9; continue;
157782
+ /* 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:
157783
+ _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; }
157723
157784
  err$1 = _r$2;
157724
- _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; }
157785
+ _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; }
157725
157786
  _arg = _r$3;
157726
- _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; }
157787
+ _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; }
157727
157788
  _r$4;
157728
157789
  $s = -1; return [0, sliceType$1.nil, err$1];
157729
- /* } */ case 7:
157790
+ /* } */ case 9:
157730
157791
  $s = -1; return [typ, p, $ifaceNil];
157731
- /* */ } 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;
157792
+ /* */ } 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;
157732
157793
  };
157733
157794
  Conn.prototype.Read = function(ctx) { return this.$val.Read(ctx); };
157734
157795
  Conn.ptr.prototype.read = function(ctx) {
@@ -157751,7 +157812,7 @@ $packages["nhooyr.io/websocket"] = (function() {
157751
157812
  /* } else if (_selection[0] === 1) { */ case 4:
157752
157813
  $s = 6; continue;
157753
157814
  /* } else if (_selection[0] === 2) { */ case 5:
157754
- $24r$1 = [0, sliceType$1.nil, c.closeErr];
157815
+ $24r$1 = [0, sliceType$1.nil, net.ErrClosed];
157755
157816
  $s = 10; case 10: return $24r$1;
157756
157817
  /* } */ case 6:
157757
157818
  $r = c.readBufMu.Lock(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
@@ -157818,7 +157879,7 @@ $packages["nhooyr.io/websocket"] = (function() {
157818
157879
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157819
157880
  c = this;
157820
157881
  if (c.isClosed()) {
157821
- $s = -1; return c.closeErr;
157882
+ $s = -1; return net.ErrClosed;
157822
157883
  }
157823
157884
  _1 = typ;
157824
157885
  /* */ if (_1 === (2)) { $s = 2; continue; }
@@ -157859,41 +157920,50 @@ $packages["nhooyr.io/websocket"] = (function() {
157859
157920
  /* */ } return; } var $f = {$blk: Conn.ptr.prototype.Close, $c: true, $r, $24r, _r, _r$1, c, code, err, reason, $s};return $f;
157860
157921
  };
157861
157922
  Conn.prototype.Close = function(code, reason) { return this.$val.Close(code, reason); };
157923
+ Conn.ptr.prototype.CloseNow = function() {
157924
+ var {$24r, _r, c, $s, $r, $c} = $restore(this, {});
157925
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157926
+ c = this;
157927
+ _r = c.Close(1001, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157928
+ $24r = _r;
157929
+ $s = 2; case 2: return $24r;
157930
+ /* */ } return; } var $f = {$blk: Conn.ptr.prototype.CloseNow, $c: true, $r, $24r, _r, c, $s};return $f;
157931
+ };
157932
+ Conn.prototype.CloseNow = function() { return this.$val.CloseNow(); };
157862
157933
  Conn.ptr.prototype.exportedClose = function(code, reason) {
157863
- 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});
157934
+ 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});
157864
157935
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
157865
157936
  c = this;
157866
157937
  $r = c.closingMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157867
157938
  $deferred.push([$methodVal(c.closingMu, "Unlock"), []]);
157868
- _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; }
157939
+ /* */ if (c.isClosed()) { $s = 2; continue; }
157940
+ /* */ $s = 3; continue;
157941
+ /* if (c.isClosed()) { */ case 2:
157942
+ $24r = net.ErrClosed;
157943
+ $s = 4; case 4: return $24r;
157944
+ /* } */ case 3:
157945
+ _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; }
157869
157946
  ce = _r;
157870
- /* */ if (c.isClosed()) { $s = 3; continue; }
157871
- /* */ $s = 4; continue;
157872
- /* if (c.isClosed()) { */ case 3:
157873
- _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; }
157874
- $24r = _r$1;
157875
- $s = 6; case 6: return $24r;
157876
- /* } */ case 4:
157877
- $r = c.setCloseErr(ce); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157878
- _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; }
157879
- err = _r$2;
157880
- /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 9; continue; }
157881
- /* */ $s = 10; continue;
157882
- /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 9:
157947
+ $r = c.setCloseErr(ce); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157948
+ _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; }
157949
+ err = _r$1;
157950
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 8; continue; }
157951
+ /* */ $s = 9; continue;
157952
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 8:
157883
157953
  $24r$1 = err;
157884
- $s = 11; case 11: return $24r$1;
157885
- /* } */ case 10:
157886
- _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; }
157887
- _r$3[0];
157888
- /* */ if (!c.closeWasClean) { $s = 13; continue; }
157889
- /* */ $s = 14; continue;
157890
- /* if (!c.closeWasClean) { */ case 13:
157954
+ $s = 10; case 10: return $24r$1;
157955
+ /* } */ case 9:
157956
+ _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; }
157957
+ _r$2[0];
157958
+ /* */ if (!c.closeWasClean) { $s = 12; continue; }
157959
+ /* */ $s = 13; continue;
157960
+ /* if (!c.closeWasClean) { */ case 12:
157891
157961
  $24r$2 = c.closeErr;
157892
- $s = 15; case 15: return $24r$2;
157893
- /* } */ case 14:
157962
+ $s = 14; case 14: return $24r$2;
157963
+ /* } */ case 13:
157894
157964
  $24r$3 = $ifaceNil;
157895
- $s = 16; case 16: return $24r$3;
157896
- /* */ } 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; } }
157965
+ $s = 15; case 15: return $24r$3;
157966
+ /* */ } 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; } }
157897
157967
  };
157898
157968
  Conn.prototype.exportedClose = function(code, reason) { return this.$val.exportedClose(code, reason); };
157899
157969
  Conn.ptr.prototype.Subprotocol = function() {
@@ -157914,7 +157984,7 @@ $packages["nhooyr.io/websocket"] = (function() {
157914
157984
  /* */ $s = 3; continue;
157915
157985
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
157916
157986
  _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; }
157917
- $24r = [ptrType.nil, ptrType$2.nil, _r$1];
157987
+ $24r = [ptrType.nil, ptrType$3.nil, _r$1];
157918
157988
  $s = 5; case 5: return $24r;
157919
157989
  /* } */ case 3:
157920
157990
  $s = -1; return [c, resp, $ifaceNil];
@@ -157925,7 +157995,7 @@ $packages["nhooyr.io/websocket"] = (function() {
157925
157995
  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});
157926
157996
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
157927
157997
  opench = [opench];
157928
- if (opts === ptrType$3.nil) {
157998
+ if (opts === ptrType$4.nil) {
157929
157999
  opts = new DialOptions.ptr(sliceType$2.nil);
157930
158000
  }
157931
158001
  url = strings.Replace(url, "http://", "ws://", 1);
@@ -157937,18 +158007,15 @@ $packages["nhooyr.io/websocket"] = (function() {
157937
158007
  /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
157938
158008
  /* */ $s = 3; continue;
157939
158009
  /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
157940
- $24r = [ptrType.nil, ptrType$2.nil, err];
158010
+ $24r = [ptrType.nil, ptrType$3.nil, err];
157941
158011
  $s = 4; case 4: return $24r;
157942
158012
  /* } */ case 3:
157943
- 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);
158013
+ 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);
157944
158014
  $r = c.init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
157945
158015
  opench[0] = new $Chan(structType, 0);
157946
- _r$1 = $clone(ws, wsjs.WebSocket).OnOpen((function(opench) { return function $b(e) {
157947
- var {e, $s, $r, $c} = $restore(this, {e});
157948
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157949
- $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; }
157950
- $s = -1; return;
157951
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, e, $s};return $f;
158016
+ _r$1 = $clone(ws, wsjs.WebSocket).OnOpen((function(opench) { return function(e) {
158017
+ var e;
158018
+ $close(opench[0]);
157952
158019
  }; })(opench)); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
157953
158020
  releaseOpen = _r$1;
157954
158021
  $deferred.push([releaseOpen, []]);
@@ -157963,17 +158030,17 @@ $packages["nhooyr.io/websocket"] = (function() {
157963
158030
  _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; }
157964
158031
  _r$4;
157965
158032
  _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; }
157966
- $24r$1 = [ptrType.nil, ptrType$2.nil, _r$5];
158033
+ $24r$1 = [ptrType.nil, ptrType$3.nil, _r$5];
157967
158034
  $s = 15; case 15: return $24r$1;
157968
158035
  /* } else if (_selection[0] === 1) { */ case 10:
157969
- $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];
158036
+ $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];
157970
158037
  $s = 16; case 16: return $24r$2;
157971
158038
  /* } else if (_selection[0] === 2) { */ case 11:
157972
- $24r$3 = [ptrType.nil, ptrType$2.nil, c.closeErr];
158039
+ $24r$3 = [ptrType.nil, ptrType$3.nil, net.ErrClosed];
157973
158040
  $s = 17; case 17: return $24r$3;
157974
158041
  /* } */ case 12:
157975
- $s = -1; return [ptrType.nil, ptrType$2.nil, $ifaceNil];
157976
- /* */ } 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; } }
158042
+ $s = -1; return [ptrType.nil, ptrType$3.nil, $ifaceNil];
158043
+ /* */ } 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; } }
157977
158044
  };
157978
158045
  Conn.ptr.prototype.Reader = function(ctx) {
157979
158046
  var {_r, _tuple, c, ctx, err, p, typ, $s, $r, $c} = $restore(this, {ctx});
@@ -157992,13 +158059,13 @@ $packages["nhooyr.io/websocket"] = (function() {
157992
158059
  };
157993
158060
  Conn.prototype.Reader = function(ctx) { return this.$val.Reader(ctx); };
157994
158061
  Conn.ptr.prototype.Writer = function(ctx, typ) {
157995
- var {$24r, _r, c, ctx, typ, x, $s, $r, $c} = $restore(this, {ctx, typ});
158062
+ var {$24r, _r, c, ctx, typ, $s, $r, $c} = $restore(this, {ctx, typ});
157996
158063
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
157997
158064
  c = this;
157998
158065
  _r = bpool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
157999
- $24r = [(x = new writer.ptr(false, c, ctx, typ, _r), new x.constructor.elem(x)), $ifaceNil];
158066
+ $24r = [new writer.ptr(false, c, ctx, typ, _r), $ifaceNil];
158000
158067
  $s = 2; case 2: return $24r;
158001
- /* */ } return; } var $f = {$blk: Conn.ptr.prototype.Writer, $c: true, $r, $24r, _r, c, ctx, typ, x, $s};return $f;
158068
+ /* */ } return; } var $f = {$blk: Conn.ptr.prototype.Writer, $c: true, $r, $24r, _r, c, ctx, typ, $s};return $f;
158002
158069
  };
158003
158070
  Conn.prototype.Writer = function(ctx, typ) { return this.$val.Writer(ctx, typ); };
158004
158071
  writer.ptr.prototype.Write = function(p) {
@@ -158050,30 +158117,45 @@ $packages["nhooyr.io/websocket"] = (function() {
158050
158117
  };
158051
158118
  writer.prototype.Close = function() { return this.$val.Close(); };
158052
158119
  Conn.ptr.prototype.CloseRead = function(ctx) {
158053
- var {_r, _tuple, c, cancel, ctx, $s, $r, $c} = $restore(this, {ctx});
158120
+ var {_r, _tuple, c, cancel, ctx, ctx2, $s, $r, $c} = $restore(this, {ctx});
158054
158121
  /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
158055
158122
  c = [c];
158056
158123
  cancel = [cancel];
158057
158124
  ctx = [ctx];
158058
158125
  c[0] = this;
158059
- c[0].isReadClosed.Store(new $Int64(0, 1));
158060
- _r = context.WithCancel(ctx[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
158126
+ $r = c[0].closeReadMu.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158127
+ ctx2 = c[0].closeReadCtx;
158128
+ /* */ if (!($interfaceIsEqual(ctx2, $ifaceNil))) { $s = 2; continue; }
158129
+ /* */ $s = 3; continue;
158130
+ /* if (!($interfaceIsEqual(ctx2, $ifaceNil))) { */ case 2:
158131
+ $r = c[0].closeReadMu.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158132
+ $s = -1; return ctx2;
158133
+ /* } */ case 3:
158134
+ _r = context.WithCancel(ctx[0]); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
158061
158135
  _tuple = _r;
158062
158136
  ctx[0] = _tuple[0];
158063
158137
  cancel[0] = _tuple[1];
158138
+ c[0].closeReadCtx = ctx[0];
158139
+ $r = c[0].closeReadMu.Unlock(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158064
158140
  $go((function(c, cancel, ctx) { return function $b() {
158065
- var {_r$1, _r$2, $s, $deferred, $r, $c} = $restore(this, {});
158141
+ var {_r$1, _r$2, _tuple$1, err, $s, $deferred, $r, $c} = $restore(this, {});
158066
158142
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
158067
158143
  $deferred.push([cancel[0], []]);
158144
+ $deferred.push([$methodVal(c[0], "CloseNow"), []]);
158068
158145
  _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; }
158069
- _r$1;
158070
- _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; }
158071
- _r$2;
158146
+ _tuple$1 = _r$1;
158147
+ err = _tuple$1[2];
158148
+ /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; }
158149
+ /* */ $s = 3; continue;
158150
+ /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2:
158151
+ _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; }
158152
+ _r$2;
158153
+ /* } */ case 3:
158072
158154
  $s = -1; return;
158073
- /* */ } 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; } }
158155
+ /* */ } 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; } }
158074
158156
  }; })(c, cancel, ctx), []);
158075
158157
  $s = -1; return ctx[0];
158076
- /* */ } return; } var $f = {$blk: Conn.ptr.prototype.CloseRead, $c: true, $r, _r, _tuple, c, cancel, ctx, $s};return $f;
158158
+ /* */ } return; } var $f = {$blk: Conn.ptr.prototype.CloseRead, $c: true, $r, _r, _tuple, c, cancel, ctx, ctx2, $s};return $f;
158077
158159
  };
158078
158160
  Conn.prototype.CloseRead = function(ctx) { return this.$val.CloseRead(ctx); };
158079
158161
  Conn.ptr.prototype.SetReadLimit = function(n) {
@@ -158111,6 +158193,19 @@ $packages["nhooyr.io/websocket"] = (function() {
158111
158193
  }
158112
158194
  };
158113
158195
  Conn.prototype.isClosed = function() { return this.$val.isClosed(); };
158196
+ CloseError.ptr.prototype.Error = function() {
158197
+ var {$24r, _r, ce, $s, $r, $c} = $restore(this, {});
158198
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
158199
+ ce = this;
158200
+ _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; }
158201
+ $24r = _r;
158202
+ $s = 2; case 2: return $24r;
158203
+ /* */ } return; } var $f = {$blk: CloseError.ptr.prototype.Error, $c: true, $r, $24r, _r, ce, $s};return $f;
158204
+ };
158205
+ CloseError.prototype.Error = function() { return this.$val.Error(); };
158206
+ noCopy.ptr.prototype.Lock = function() {
158207
+ };
158208
+ noCopy.prototype.Lock = function() { return this.$val.Lock(); };
158114
158209
  MessageType.prototype.String = function() {
158115
158210
  var i, x;
158116
158211
  i = this.$val;
@@ -158131,50 +158226,41 @@ $packages["nhooyr.io/websocket"] = (function() {
158131
158226
  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])));
158132
158227
  };
158133
158228
  $ptrType(StatusCode).prototype.String = function() { return new StatusCode(this.$get()).String(); };
158134
- CloseError.ptr.prototype.Error = function() {
158135
- var {$24r, _r, ce, $s, $r, $c} = $restore(this, {});
158136
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
158137
- ce = this;
158138
- _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; }
158139
- $24r = _r;
158140
- $s = 2; case 2: return $24r;
158141
- /* */ } return; } var $f = {$blk: CloseError.ptr.prototype.Error, $c: true, $r, $24r, _r, ce, $s};return $f;
158142
- };
158143
- CloseError.prototype.Error = function() { return this.$val.Error(); };
158144
- 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)}];
158145
- writer.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}];
158146
- MessageType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
158229
+ 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)}];
158230
+ ptrType$9.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$1], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}];
158147
158231
  StatusCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
158148
158232
  CloseError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}];
158149
- 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: ""}]);
158233
+ MessageType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}];
158234
+ ptrType$10.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}];
158235
+ 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: ""}]);
158150
158236
  DialOptions.init("", [{prop: "Subprotocols", name: "Subprotocols", embedded: false, exported: true, typ: sliceType$2, tag: ""}]);
158151
- 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: ""}]);
158237
+ 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: ""}]);
158152
158238
  CloseError.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: StatusCode, tag: ""}, {prop: "Reason", name: "Reason", embedded: false, exported: true, typ: $String, tag: ""}]);
158239
+ noCopy.init("", []);
158153
158240
  $init = function() {
158154
158241
  $pkg.$init = function() {};
158155
158242
  /* */ 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:
158156
- $r = bufio.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158157
- $r = bytes.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158158
- $r = context.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158159
- $r = binary.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158160
- $r = errors.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158161
- $r = fmt.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158162
- $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158163
- $r = math.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158164
- $r = bits.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158165
- $r = net.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158166
- $r = http.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158167
- $r = bpool.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158168
- $r = errd.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158169
- $r = wsjs.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158170
- $r = xsync.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158171
- $r = reflect.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158172
- $r = runtime.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158173
- $r = strconv.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158174
- $r = strings.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158175
- $r = sync.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158176
- $r = js.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158177
- $r = time.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158243
+ $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158244
+ $r = context.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158245
+ $r = binary.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158246
+ $r = errors.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158247
+ $r = fmt.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158248
+ $r = bpool.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158249
+ $r = wsjs.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158250
+ $r = xsync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158251
+ $r = io.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158252
+ $r = math.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158253
+ $r = bits.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158254
+ $r = net.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158255
+ $r = http.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158256
+ $r = reflect.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158257
+ $r = runtime.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158258
+ $r = strconv.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158259
+ $r = strings.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158260
+ $r = sync.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158261
+ $r = atomic.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158262
+ $r = js.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158263
+ $r = time.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158178
158264
  _MessageType_index = $toNativeArray($kindUint8, [0, 11, 24]);
158179
158265
  _StatusCode_index = $toNativeArray($kindUint16, [0, 19, 34, 53, 74, 88, 106, 127, 156, 177, 196, 220, 239, 259, 278, 294, 312]);
158180
158266
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
@@ -158183,10 +158269,10 @@ $packages["nhooyr.io/websocket"] = (function() {
158183
158269
  return $pkg;
158184
158270
  })();
158185
158271
  $packages["github.com/supraio/client-daemon/pkg/netstream"] = (function() {
158186
- var $pkg = {}, $init, context, errs, websocket, time, JsWebsocketConn, ReaderWriter, ReaderWriterCloser, Driver, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, connects, init, ConnectJsWebsocket, Create;
158272
+ var $pkg = {}, $init, context, websocket, errs, time, JsWebsocketConn, ReaderWriter, ReaderWriterCloser, Driver, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, connects, init, ConnectJsWebsocket, Create;
158187
158273
  context = $packages["context"];
158274
+ websocket = $packages["github.com/coder/websocket"];
158188
158275
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
158189
- websocket = $packages["nhooyr.io/websocket"];
158190
158276
  time = $packages["time"];
158191
158277
  JsWebsocketConn = $pkg.JsWebsocketConn = $newType(0, $kindStruct, "netstream.JsWebsocketConn", true, "github.com/supraio/client-daemon/pkg/netstream", true, function(conn_) {
158192
158278
  this.$val = this;
@@ -158304,8 +158390,8 @@ $packages["github.com/supraio/client-daemon/pkg/netstream"] = (function() {
158304
158390
  $pkg.$init = function() {};
158305
158391
  /* */ 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:
158306
158392
  $r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158307
- $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158308
- $r = websocket.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158393
+ $r = websocket.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158394
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158309
158395
  $r = time.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
158310
158396
  connects = $makeMap(Driver.keyFor, []);
158311
158397
  init();
@@ -158923,10 +159009,10 @@ $packages["github.com/supraio/client-daemon/pkg/netclient"] = (function() {
158923
159009
  return $pkg;
158924
159010
  })();
158925
159011
  $packages["github.com/supraio/client-daemon/pkg/netpacket"] = (function() {
158926
- var $pkg = {}, $init, context, errs, websocket, time, JsWebsocketConn, Driver, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, connects, maxPacketSizes, init, ConnectJsWebsocket;
159012
+ var $pkg = {}, $init, context, websocket, errs, time, JsWebsocketConn, Driver, sliceType, sliceType$1, ptrType, sliceType$2, ptrType$1, connects, maxPacketSizes, init, ConnectJsWebsocket;
158927
159013
  context = $packages["context"];
159014
+ websocket = $packages["github.com/coder/websocket"];
158928
159015
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
158929
- websocket = $packages["nhooyr.io/websocket"];
158930
159016
  time = $packages["time"];
158931
159017
  JsWebsocketConn = $pkg.JsWebsocketConn = $newType(0, $kindStruct, "netpacket.JsWebsocketConn", true, "github.com/supraio/client-daemon/pkg/netpacket", true, function(conn_) {
158932
159018
  this.$val = this;
@@ -159026,8 +159112,8 @@ $packages["github.com/supraio/client-daemon/pkg/netpacket"] = (function() {
159026
159112
  $pkg.$init = function() {};
159027
159113
  /* */ 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:
159028
159114
  $r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
159029
- $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
159030
- $r = websocket.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
159115
+ $r = websocket.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
159116
+ $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
159031
159117
  $r = time.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
159032
159118
  connects = $makeMap(Driver.keyFor, []);
159033
159119
  maxPacketSizes = $makeMap(Driver.keyFor, []);
@@ -181766,12 +181852,80 @@ $packages["github.com/supraio/client-daemon/pkg/clientscreen"] = (function() {
181766
181852
  return $pkg;
181767
181853
  })();
181768
181854
  $packages["github.com/supraio/client-daemon/pkg/jshelper"] = (function() {
181769
- var $pkg = {}, $init, js;
181855
+ var $pkg = {}, $init, log, js, ptrType, sliceType, Await;
181856
+ log = $packages["log"];
181770
181857
  js = $packages["syscall/js"];
181858
+ ptrType = $ptrType(js.Value);
181859
+ sliceType = $sliceType($emptyInterface);
181860
+ Await = function(awaitable) {
181861
+ 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});
181862
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
181863
+ catch$1 = [catch$1];
181864
+ then = [then];
181865
+ then[0] = new $Chan(ptrType, 0);
181866
+ $deferred.push([(function(catch$1, then) { return function() {
181867
+ $close(then[0]);
181868
+ then[0] = $chanNil;
181869
+ }; })(catch$1, then), []]);
181870
+ thenFunc = $clone(js.FuncOf((function(catch$1, then) { return function $b(this$1, args) {
181871
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
181872
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
181873
+ /* */ if (then[0] === $chanNil) { $s = 1; continue; }
181874
+ /* */ $s = 2; continue;
181875
+ /* if (then[0] === $chanNil) { */ case 1:
181876
+ $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; }
181877
+ $s = -1; return $ifaceNil;
181878
+ /* } */ case 2:
181879
+ $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; }
181880
+ $s = -1; return $ifaceNil;
181881
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
181882
+ }; })(catch$1, then)), js.Func);
181883
+ $deferred.push([$methodVal($clone(thenFunc, js.Func), "Release"), []]);
181884
+ catch$1[0] = new $Chan(ptrType, 0);
181885
+ $deferred.push([(function(catch$1, then) { return function() {
181886
+ $close(catch$1[0]);
181887
+ catch$1[0] = $chanNil;
181888
+ }; })(catch$1, then), []]);
181889
+ catchFunc = $clone(js.FuncOf((function(catch$1, then) { return function $b(this$1, args) {
181890
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
181891
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
181892
+ /* */ if (catch$1[0] === $chanNil) { $s = 1; continue; }
181893
+ /* */ $s = 2; continue;
181894
+ /* if (catch$1[0] === $chanNil) { */ case 1:
181895
+ $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; }
181896
+ $s = -1; return $ifaceNil;
181897
+ /* } */ case 2:
181898
+ $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; }
181899
+ $s = -1; return $ifaceNil;
181900
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
181901
+ }; })(catch$1, then)), js.Func);
181902
+ $deferred.push([$methodVal($clone(catchFunc, js.Func), "Release"), []]);
181903
+ _r = $clone(awaitable, js.Value).Call("then", new sliceType([new thenFunc.constructor.elem(thenFunc)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
181904
+ _r$1 = $clone(_r, js.Value).Call("catch", new sliceType([new catchFunc.constructor.elem(catchFunc)])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; }
181905
+ _r$1;
181906
+ _r$2 = $select([[then[0]], [catch$1[0]]]); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; }
181907
+ _selection = _r$2;
181908
+ /* */ if (_selection[0] === 0) { $s = 4; continue; }
181909
+ /* */ if (_selection[0] === 1) { $s = 5; continue; }
181910
+ /* */ $s = 6; continue;
181911
+ /* if (_selection[0] === 0) { */ case 4:
181912
+ result = _selection[1][0];
181913
+ $24r = [result, ptrType.nil];
181914
+ $s = 7; case 7: return $24r;
181915
+ /* } else if (_selection[0] === 1) { */ case 5:
181916
+ err = _selection[1][0];
181917
+ $24r$1 = [ptrType.nil, err];
181918
+ $s = 8; case 8: return $24r$1;
181919
+ /* } */ case 6:
181920
+ $s = -1; return [ptrType.nil, ptrType.nil];
181921
+ /* */ } 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; } }
181922
+ };
181923
+ $pkg.Await = Await;
181771
181924
  $init = function() {
181772
181925
  $pkg.$init = function() {};
181773
181926
  /* */ 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:
181774
- $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
181927
+ $r = log.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
181928
+ $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
181775
181929
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
181776
181930
  };
181777
181931
  $pkg.$init = $init;
@@ -190069,12 +190223,771 @@ $packages["github.com/supraio/client-daemon/pkg/x264/h264decoder"] = (function()
190069
190223
  $pkg.$init = $init;
190070
190224
  return $pkg;
190071
190225
  })();
190226
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"] = (function() {
190227
+ 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;
190228
+ focus = $packages["golang.org/x/mobile/event/focus"];
190229
+ key = $packages["golang.org/x/mobile/event/key"];
190230
+ mouse = $packages["golang.org/x/mobile/event/mouse"];
190231
+ size = $packages["golang.org/x/mobile/event/size"];
190232
+ geom = $packages["golang.org/x/mobile/geom"];
190233
+ math = $packages["math"];
190234
+ strings = $packages["strings"];
190235
+ js = $packages["syscall/js"];
190236
+ DomEvents = $pkg.DomEvents = $newType(0, $kindStruct, "dom.DomEvents", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom", true, function(eventChan_, releases_) {
190237
+ this.$val = this;
190238
+ if (arguments.length === 0) {
190239
+ this.eventChan = $chanNil;
190240
+ this.releases = sliceType$1.nil;
190241
+ return;
190242
+ }
190243
+ this.eventChan = eventChan_;
190244
+ this.releases = releases_;
190245
+ });
190246
+ sliceType = $sliceType($emptyInterface);
190247
+ funcType = $funcType([], [], false);
190248
+ sliceType$1 = $sliceType(funcType);
190249
+ sliceType$2 = $sliceType($Int32);
190250
+ chanType = $chanType($emptyInterface, false, false);
190251
+ ptrType = $ptrType(DomEvents);
190252
+ GetDocWidth = function() {
190253
+ return $clone($clone(js.Global(), js.Value).Get("innerWidth"), js.Value).Int();
190254
+ };
190255
+ $pkg.GetDocWidth = GetDocWidth;
190256
+ GetDocHeight = function() {
190257
+ return $clone($clone(js.Global(), js.Value).Get("innerHeight"), js.Value).Int();
190258
+ };
190259
+ $pkg.GetDocHeight = GetDocHeight;
190260
+ GetOrientation = function() {
190261
+ var {$24r, $24r$1, $24r$2, orientation, orientationType, $s, $deferred, $r, $c} = $restore(this, {});
190262
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190263
+ orientation = [orientation];
190264
+ orientation[0] = 0;
190265
+ $deferred.push([(function(orientation) { return function() {
190266
+ if (!($interfaceIsEqual($recover(), $ifaceNil))) {
190267
+ orientation[0] = 0;
190268
+ }
190269
+ }; })(orientation), []]);
190270
+ orientationType = $clone($clone($clone($clone(js.Global(), js.Value).Get("screen"), js.Value).Get("orientation"), js.Value).Get("type"), js.Value).String();
190271
+ /* */ if (strings.HasPrefix(orientationType, "landscape")) { $s = 1; continue; }
190272
+ /* */ $s = 2; continue;
190273
+ /* if (strings.HasPrefix(orientationType, "landscape")) { */ case 1:
190274
+ orientation[0] = 2;
190275
+ $24r = orientation[0];
190276
+ $s = 3; case 3: return $24r;
190277
+ /* } */ case 2:
190278
+ /* */ if (strings.HasPrefix(orientationType, "portrait")) { $s = 4; continue; }
190279
+ /* */ $s = 5; continue;
190280
+ /* if (strings.HasPrefix(orientationType, "portrait")) { */ case 4:
190281
+ orientation[0] = 2;
190282
+ $24r$1 = orientation[0];
190283
+ $s = 6; case 6: return $24r$1;
190284
+ /* } */ case 5:
190285
+ orientation[0] = 0;
190286
+ $24r$2 = orientation[0];
190287
+ $s = 7; case 7: return $24r$2;
190288
+ /* */ } 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; } }
190289
+ };
190290
+ $pkg.GetOrientation = GetOrientation;
190291
+ NewDomEvents = function() {
190292
+ return new DomEvents.ptr(new $Chan($emptyInterface, 0), $makeSlice(sliceType$1, 0));
190293
+ };
190294
+ $pkg.NewDomEvents = NewDomEvents;
190295
+ DomEvents.ptr.prototype.GetEventChan = function() {
190296
+ var d;
190297
+ d = this;
190298
+ return d.eventChan;
190299
+ };
190300
+ DomEvents.prototype.GetEventChan = function() { return this.$val.GetEventChan(); };
190301
+ DomEvents.ptr.prototype.Release = function() {
190302
+ var {_i, _ref, d, release, $s, $r, $c} = $restore(this, {});
190303
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190304
+ d = this;
190305
+ _ref = d.releases;
190306
+ _i = 0;
190307
+ /* while (true) { */ case 1:
190308
+ /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; }
190309
+ release = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
190310
+ $r = release(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190311
+ _i++;
190312
+ $s = 1; continue;
190313
+ case 2:
190314
+ $s = -1; return;
190315
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.Release, $c: true, $r, _i, _ref, d, release, $s};return $f;
190316
+ };
190317
+ DomEvents.prototype.Release = function() { return this.$val.Release(); };
190318
+ DomEvents.ptr.prototype.BindEvents = function() {
190319
+ var {d, $s, $r, $c} = $restore(this, {});
190320
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190321
+ d = this;
190322
+ $r = d.bindSizeEvents(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190323
+ $go($methodVal(d, "emitSizeEvent"), []);
190324
+ $r = d.bindMouseEvents(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190325
+ $r = d.bindKeyEvents(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190326
+ $r = d.bindFocusEvents(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190327
+ $s = -1; return;
190328
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.BindEvents, $c: true, $r, d, $s};return $f;
190329
+ };
190330
+ DomEvents.prototype.BindEvents = function() { return this.$val.BindEvents(); };
190331
+ DomEvents.ptr.prototype.bindSizeEvents = function() {
190332
+ var {_r, d, onResize, $s, $r, $c} = $restore(this, {});
190333
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190334
+ d = [d];
190335
+ onResize = [onResize];
190336
+ d[0] = this;
190337
+ onResize[0] = $clone(js.FuncOf((function(d, onResize) { return function $b(this$1, args) {
190338
+ var {args, this$1, $s, $r, $c} = $restore(this, {this$1, args});
190339
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190340
+ $r = d[0].emitSizeEvent(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190341
+ $s = -1; return $ifaceNil;
190342
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, $s};return $f;
190343
+ }; })(d, onResize)), js.Func);
190344
+ _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; }
190345
+ _r;
190346
+ d[0].releases = $append(d[0].releases, (function(d, onResize) { return function $b() {
190347
+ var {_r$1, $s, $r, $c} = $restore(this, {});
190348
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190349
+ _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; }
190350
+ _r$1;
190351
+ $clone(onResize[0], js.Func).Release();
190352
+ $s = -1; return;
190353
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, $s};return $f;
190354
+ }; })(d, onResize));
190355
+ $s = -1; return;
190356
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindSizeEvents, $c: true, $r, _r, d, onResize, $s};return $f;
190357
+ };
190358
+ DomEvents.prototype.bindSizeEvents = function() { return this.$val.bindSizeEvents(); };
190359
+ DomEvents.ptr.prototype.emitSizeEvent = function() {
190360
+ var {_q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s, $r, $c} = $restore(this, {});
190361
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190362
+ d = this;
190363
+ _r = GetOrientation(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190364
+ orientation = _r;
190365
+ pixelsPerPt = 1;
190366
+ width = GetDocWidth();
190367
+ height = GetDocHeight();
190368
+ $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; }
190369
+ $s = -1; return;
190370
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.emitSizeEvent, $c: true, $r, _q, _q$1, _r, d, height, orientation, pixelsPerPt, width, x, $s};return $f;
190371
+ };
190372
+ DomEvents.prototype.emitSizeEvent = function() { return this.$val.emitSizeEvent(); };
190373
+ DomEvents.ptr.prototype.bindMouseEvents = function() {
190374
+ var {_r, _r$1, _r$2, _r$3, d, onClick, onMove, onWheel, $s, $r, $c} = $restore(this, {});
190375
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190376
+ d = [d];
190377
+ onClick = [onClick];
190378
+ onMove = [onMove];
190379
+ onWheel = [onWheel];
190380
+ d[0] = this;
190381
+ onMove[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190382
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190383
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190384
+ _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; }
190385
+ _r;
190386
+ $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; }
190387
+ $s = -1; return $ifaceNil;
190388
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
190389
+ }; })(d, onClick, onMove, onWheel)), js.Func);
190390
+ _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; }
190391
+ _r;
190392
+ onClick[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190393
+ var {_r$1, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190394
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190395
+ _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; }
190396
+ _r$1;
190397
+ $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; }
190398
+ $s = -1; return $ifaceNil;
190399
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$1, args, this$1, x, $s};return $f;
190400
+ }; })(d, onClick, onMove, onWheel)), js.Func);
190401
+ _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; }
190402
+ _r$1;
190403
+ _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; }
190404
+ _r$2;
190405
+ onWheel[0] = $clone(js.FuncOf((function(d, onClick, onMove, onWheel) { return function $b(this$1, args) {
190406
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190407
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190408
+ $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; }
190409
+ $s = -1; return $ifaceNil;
190410
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
190411
+ }; })(d, onClick, onMove, onWheel)), js.Func);
190412
+ _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; }
190413
+ _r$3;
190414
+ d[0].releases = $append(d[0].releases, (function(d, onClick, onMove, onWheel) { return function $b() {
190415
+ var {_r$4, _r$5, _r$6, _r$7, $s, $r, $c} = $restore(this, {});
190416
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190417
+ _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; }
190418
+ _r$4;
190419
+ _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; }
190420
+ _r$5;
190421
+ _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; }
190422
+ _r$6;
190423
+ _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; }
190424
+ _r$7;
190425
+ $clone(onMove[0], js.Func).Release();
190426
+ $clone(onClick[0], js.Func).Release();
190427
+ $clone(onWheel[0], js.Func).Release();
190428
+ $s = -1; return;
190429
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$4, _r$5, _r$6, _r$7, $s};return $f;
190430
+ }; })(d, onClick, onMove, onWheel));
190431
+ $s = -1; return;
190432
+ /* */ } 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;
190433
+ };
190434
+ DomEvents.prototype.bindMouseEvents = function() { return this.$val.bindMouseEvents(); };
190435
+ getMouseDirection = function(ev) {
190436
+ var dir, ev;
190437
+ dir = 0;
190438
+ dir = 0;
190439
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mousedown") {
190440
+ dir = 1;
190441
+ }
190442
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "mouseup") {
190443
+ dir = 2;
190444
+ }
190445
+ return dir;
190446
+ };
190447
+ getWheelButton = function(ev) {
190448
+ var deltaX, deltaY, ev;
190449
+ deltaY = $clone($clone(ev, js.Value).Get("deltaY"), js.Value).Int();
190450
+ deltaX = $clone($clone(ev, js.Value).Get("deltaX"), js.Value).Int();
190451
+ if (deltaY > 0) {
190452
+ return -2;
190453
+ }
190454
+ if (deltaY < 0) {
190455
+ return -1;
190456
+ }
190457
+ if (deltaX > 0) {
190458
+ return -4;
190459
+ }
190460
+ if (deltaX < 0) {
190461
+ return -3;
190462
+ }
190463
+ return 0;
190464
+ };
190465
+ getMouseButton = function(ev) {
190466
+ var _1, ev;
190467
+ _1 = $clone($clone(ev, js.Value).Get("button"), js.Value).Int();
190468
+ if (_1 === (0)) {
190469
+ return 1;
190470
+ } else if (_1 === (1)) {
190471
+ return 2;
190472
+ } else if (_1 === (2)) {
190473
+ return 3;
190474
+ } else if (_1 === (3)) {
190475
+ return 8;
190476
+ } else if (_1 === (4)) {
190477
+ return 9;
190478
+ } else {
190479
+ return 0;
190480
+ }
190481
+ };
190482
+ getEventModifiers = function(ev) {
190483
+ var ev, mod;
190484
+ mod = 0;
190485
+ if ($clone($clone(ev, js.Value).Get("altKey"), js.Value).Bool()) {
190486
+ mod = (mod | (4)) >>> 0;
190487
+ }
190488
+ if ($clone($clone(ev, js.Value).Get("ctrlKey"), js.Value).Bool()) {
190489
+ mod = (mod | (2)) >>> 0;
190490
+ }
190491
+ if ($clone($clone(ev, js.Value).Get("shiftKey"), js.Value).Bool()) {
190492
+ mod = (mod | (1)) >>> 0;
190493
+ }
190494
+ if ($clone($clone(ev, js.Value).Get("metaKey"), js.Value).Bool()) {
190495
+ mod = (mod | (8)) >>> 0;
190496
+ }
190497
+ return mod;
190498
+ };
190499
+ DomEvents.ptr.prototype.bindFocusEvents = function() {
190500
+ var {_r, _r$1, d, onFocus, $s, $r, $c} = $restore(this, {});
190501
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190502
+ d = [d];
190503
+ onFocus = [onFocus];
190504
+ d[0] = this;
190505
+ onFocus[0] = $clone(js.FuncOf((function(d, onFocus) { return function $b(this$1, args) {
190506
+ var {args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190507
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190508
+ $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; }
190509
+ $s = -1; return $ifaceNil;
190510
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, args, this$1, x, $s};return $f;
190511
+ }; })(d, onFocus)), js.Func);
190512
+ _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; }
190513
+ _r;
190514
+ _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; }
190515
+ _r$1;
190516
+ d[0].releases = $append(d[0].releases, (function(d, onFocus) { return function $b() {
190517
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
190518
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190519
+ _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; }
190520
+ _r$2;
190521
+ _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; }
190522
+ _r$3;
190523
+ $clone(onFocus[0], js.Func).Release();
190524
+ $s = -1; return;
190525
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
190526
+ }; })(d, onFocus));
190527
+ $s = -1; return;
190528
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindFocusEvents, $c: true, $r, _r, _r$1, d, onFocus, $s};return $f;
190529
+ };
190530
+ DomEvents.prototype.bindFocusEvents = function() { return this.$val.bindFocusEvents(); };
190531
+ isFocusIn = function(ev) {
190532
+ var ev;
190533
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "focus") {
190534
+ return true;
190535
+ }
190536
+ return false;
190537
+ };
190538
+ DomEvents.ptr.prototype.bindKeyEvents = function() {
190539
+ var {_r, _r$1, d, onKey, $s, $r, $c} = $restore(this, {});
190540
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190541
+ d = [d];
190542
+ onKey = [onKey];
190543
+ d[0] = this;
190544
+ onKey[0] = $clone(js.FuncOf((function(d, onKey) { return function $b(this$1, args) {
190545
+ var {_r, args, this$1, x, $s, $r, $c} = $restore(this, {this$1, args});
190546
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190547
+ _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; }
190548
+ _r;
190549
+ $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; }
190550
+ $s = -1; return $ifaceNil;
190551
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r, args, this$1, x, $s};return $f;
190552
+ }; })(d, onKey)), js.Func);
190553
+ _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; }
190554
+ _r;
190555
+ _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; }
190556
+ _r$1;
190557
+ d[0].releases = $append(d[0].releases, (function(d, onKey) { return function $b() {
190558
+ var {_r$2, _r$3, $s, $r, $c} = $restore(this, {});
190559
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190560
+ _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; }
190561
+ _r$2;
190562
+ _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; }
190563
+ _r$3;
190564
+ $clone(onKey[0], js.Func).Release();
190565
+ $s = -1; return;
190566
+ /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$2, _r$3, $s};return $f;
190567
+ }; })(d, onKey));
190568
+ $s = -1; return;
190569
+ /* */ } return; } var $f = {$blk: DomEvents.ptr.prototype.bindKeyEvents, $c: true, $r, _r, _r$1, d, onKey, $s};return $f;
190570
+ };
190571
+ DomEvents.prototype.bindKeyEvents = function() { return this.$val.bindKeyEvents(); };
190572
+ getKeyRune = function(ev) {
190573
+ var ev, key$1;
190574
+ key$1 = (new sliceType$2($stringToRunes($clone($clone(ev, js.Value).Get("key"), js.Value).String())));
190575
+ if (key$1.$length === 1) {
190576
+ return (0 >= key$1.$length ? ($throwRuntimeError("index out of range"), undefined) : key$1.$array[key$1.$offset + 0]);
190577
+ }
190578
+ return -1;
190579
+ };
190580
+ getKeyDirection = function(ev) {
190581
+ var dir, ev;
190582
+ dir = 0;
190583
+ dir = 0;
190584
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keydown") {
190585
+ dir = 1;
190586
+ }
190587
+ if ($clone($clone(ev, js.Value).Get("type"), js.Value).String() === "keyup") {
190588
+ dir = 2;
190589
+ }
190590
+ return dir;
190591
+ };
190592
+ getKeyCode = function(ev) {
190593
+ var _entry, _entry$1, _tuple, _tuple$1, code, code$1, domCode, domKey, ev, exists, exists$1;
190594
+ domCode = $clone($clone(ev, js.Value).Get("code"), js.Value).String();
190595
+ _tuple = (_entry = $mapIndex(keyCodesMap,$String.keyFor(domCode)), _entry !== undefined ? [_entry.v, true] : [0, false]);
190596
+ code = _tuple[0];
190597
+ exists = _tuple[1];
190598
+ if (exists) {
190599
+ return code;
190600
+ }
190601
+ domKey = $clone($clone(ev, js.Value).Get("key"), js.Value).String();
190602
+ _tuple$1 = (_entry$1 = $mapIndex(keyCodesByKeyMap,$String.keyFor(domKey)), _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]);
190603
+ code$1 = _tuple$1[0];
190604
+ exists$1 = _tuple$1[1];
190605
+ if (exists$1) {
190606
+ return code$1;
190607
+ }
190608
+ return 0;
190609
+ };
190610
+ 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)}];
190611
+ 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: ""}]);
190612
+ $init = function() {
190613
+ $pkg.$init = function() {};
190614
+ /* */ 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:
190615
+ $r = focus.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190616
+ $r = key.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190617
+ $r = mouse.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190618
+ $r = size.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190619
+ $r = geom.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190620
+ $r = math.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190621
+ $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190622
+ $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190623
+ 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 }]);
190624
+ keyCodesByKeyMap = $makeMap($String.keyFor, [{ k: "AudioVolumeMute", v: 127 }, { k: "AudioVolumeUp", v: 128 }, { k: "AudioVolumeDown", v: 129 }]);
190625
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190626
+ };
190627
+ $pkg.$init = $init;
190628
+ return $pkg;
190629
+ })();
190630
+ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"] = (function() {
190631
+ 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, newBuffer;
190632
+ fmt = $packages["fmt"];
190633
+ errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190634
+ jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190635
+ dom = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver/dom"];
190636
+ screen = $packages["golang.org/x/exp/shiny/screen"];
190637
+ f64 = $packages["golang.org/x/image/math/f64"];
190638
+ image = $packages["image"];
190639
+ color = $packages["image/color"];
190640
+ draw = $packages["image/draw"];
190641
+ sync = $packages["sync"];
190642
+ js = $packages["syscall/js"];
190643
+ 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_) {
190644
+ this.$val = this;
190645
+ if (arguments.length === 0) {
190646
+ this.screen = ptrType.nil;
190647
+ this.mutex = ptrType$1.nil;
190648
+ this.jsNaClDecoder = new js.Value.ptr(null, false, arrayType.zero());
190649
+ this.domEvents = ptrType$2.nil;
190650
+ this.released = false;
190651
+ return;
190652
+ }
190653
+ this.screen = screen_;
190654
+ this.mutex = mutex_;
190655
+ this.jsNaClDecoder = jsNaClDecoder_;
190656
+ this.domEvents = domEvents_;
190657
+ this.released = released_;
190658
+ });
190659
+ screenImpl = $pkg.screenImpl = $newType(0, $kindStruct, "nacldriver.screenImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", false, function(doc_) {
190660
+ this.$val = this;
190661
+ if (arguments.length === 0) {
190662
+ this.doc = new js.Value.ptr(null, false, arrayType.zero());
190663
+ return;
190664
+ }
190665
+ this.doc = doc_;
190666
+ });
190667
+ BufferImpl = $pkg.BufferImpl = $newType(0, $kindStruct, "nacldriver.BufferImpl", true, "github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", true, function(pictureResult_, screen_, size_) {
190668
+ this.$val = this;
190669
+ if (arguments.length === 0) {
190670
+ this.pictureResult = ptrType$4.nil;
190671
+ this.screen = ptrType.nil;
190672
+ this.size = new image.Point.ptr(0, 0);
190673
+ return;
190674
+ }
190675
+ this.pictureResult = pictureResult_;
190676
+ this.screen = screen_;
190677
+ this.size = size_;
190678
+ });
190679
+ sliceType = $sliceType($emptyInterface);
190680
+ ptrType = $ptrType(screenImpl);
190681
+ ptrType$1 = $ptrType(sync.Mutex);
190682
+ funcType = $funcType([], [], false);
190683
+ arrayType = $arrayType(funcType, 0);
190684
+ ptrType$2 = $ptrType(dom.DomEvents);
190685
+ ptrType$3 = $ptrType(BufferImpl);
190686
+ ptrType$4 = $ptrType(js.Value);
190687
+ ptrType$5 = $ptrType(image.RGBA);
190688
+ ptrType$6 = $ptrType(image.YCbCr);
190689
+ ptrType$7 = $ptrType(screen.DrawOptions);
190690
+ ptrType$8 = $ptrType(windowImpl);
190691
+ ptrType$9 = $ptrType(screen.NewWindowOptions);
190692
+ newWindow = function(screen$1, opts) {
190693
+ var {_r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s, $r, $c} = $restore(this, {screen$1, opts});
190694
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190695
+ /* */ if (!(opts.Title === "")) { $s = 1; continue; }
190696
+ /* */ $s = 2; continue;
190697
+ /* if (!(opts.Title === "")) { */ case 1:
190698
+ _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; }
190699
+ _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; }
190700
+ $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; }
190701
+ /* } */ case 2:
190702
+ jsNaClDecoder = $clone($clone(js.Global(), js.Value).Get("naclDecoder"), js.Value);
190703
+ /* */ if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { $s = 6; continue; }
190704
+ /* */ $s = 7; continue;
190705
+ /* if ($clone(jsNaClDecoder, js.Value).IsUndefined()) { */ case 6:
190706
+ _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; }
190707
+ $panic(_r$2);
190708
+ /* } */ case 7:
190709
+ domEvents = dom.NewDomEvents();
190710
+ w = new windowImpl.ptr(screen$1, ptrType$1.nil, $clone(jsNaClDecoder, js.Value), domEvents, false);
190711
+ $s = -1; return w;
190712
+ /* */ } return; } var $f = {$blk: newWindow, $c: true, $r, _r, _r$1, _r$2, domEvents, jsNaClDecoder, opts, screen$1, w, $s};return $f;
190713
+ };
190714
+ windowImpl.ptr.prototype.Release = function() {
190715
+ var {w, $s, $deferred, $r, $c} = $restore(this, {});
190716
+ /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
190717
+ w = this;
190718
+ $r = w.mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190719
+ $deferred.push([$methodVal(w.mutex, "Unlock"), []]);
190720
+ /* */ if (w.released) { $s = 2; continue; }
190721
+ /* */ $s = 3; continue;
190722
+ /* if (w.released) { */ case 2:
190723
+ $s = 4; case 4: return;
190724
+ /* } */ case 3:
190725
+ $r = w.domEvents.Release(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190726
+ w.released = true;
190727
+ $s = -1; return;
190728
+ /* */ } 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; } }
190729
+ };
190730
+ windowImpl.prototype.Release = function() { return this.$val.Release(); };
190731
+ windowImpl.ptr.prototype.Publish = function() {
190732
+ var w;
190733
+ w = this;
190734
+ if (w.released) {
190735
+ return new screen.PublishResult.ptr(false);
190736
+ }
190737
+ return new screen.PublishResult.ptr(false);
190738
+ };
190739
+ windowImpl.prototype.Publish = function() { return this.$val.Publish(); };
190740
+ windowImpl.ptr.prototype.Send = function(event) {
190741
+ var event, w;
190742
+ w = this;
190743
+ if (w.released) {
190744
+ return;
190745
+ }
190746
+ $panic(new $String("Not implemented"));
190747
+ };
190748
+ windowImpl.prototype.Send = function(event) { return this.$val.Send(event); };
190749
+ windowImpl.ptr.prototype.SendFirst = function(event) {
190750
+ var event, w;
190751
+ w = this;
190752
+ if (w.released) {
190753
+ return;
190754
+ }
190755
+ $panic(new $String("Not implemented"));
190756
+ };
190757
+ windowImpl.prototype.SendFirst = function(event) { return this.$val.SendFirst(event); };
190758
+ windowImpl.ptr.prototype.NextEvent = function() {
190759
+ var {_r, ev, w, $s, $r, $c} = $restore(this, {});
190760
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190761
+ w = this;
190762
+ _r = $recv(w.domEvents.GetEventChan()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190763
+ ev = _r[0];
190764
+ $s = -1; return ev;
190765
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.NextEvent, $c: true, $r, _r, ev, w, $s};return $f;
190766
+ };
190767
+ windowImpl.prototype.NextEvent = function() { return this.$val.NextEvent(); };
190768
+ windowImpl.ptr.prototype.Upload = function(dp, src, sr) {
190769
+ var {_r, dp, sr, src, w, $s, $r, $c} = $restore(this, {dp, src, sr});
190770
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190771
+ w = this;
190772
+ if (w.released) {
190773
+ $s = -1; return;
190774
+ }
190775
+ _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; }
190776
+ $panic(_r);
190777
+ $s = -1; return;
190778
+ /* */ } return; } var $f = {$blk: windowImpl.ptr.prototype.Upload, $c: true, $r, _r, dp, sr, src, w, $s};return $f;
190779
+ };
190780
+ windowImpl.prototype.Upload = function(dp, src, sr) { return this.$val.Upload(dp, src, sr); };
190781
+ windowImpl.ptr.prototype.UploadYCbCr = function(dp, src, sr) {
190782
+ 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});
190783
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190784
+ w = this;
190785
+ if (w.released) {
190786
+ $s = -1; return;
190787
+ }
190788
+ _ref = src;
190789
+ /* */ if ($assertType(_ref, ptrType$3, true)[1]) { $s = 1; continue; }
190790
+ /* */ $s = 2; continue;
190791
+ /* if ($assertType(_ref, ptrType$3, true)[1]) { */ case 1:
190792
+ jsSrc = _ref.$val;
190793
+ _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; }
190794
+ renderPromise = $clone(_r, js.Value);
190795
+ _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; }
190796
+ _tuple = _r$1;
190797
+ err = _tuple[1];
190798
+ /* */ if (!(err === ptrType$4.nil)) { $s = 5; continue; }
190799
+ /* */ $s = 6; continue;
190800
+ /* if (!(err === ptrType$4.nil)) { */ case 5:
190801
+ _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; }
190802
+ _arg = _r$2;
190803
+ $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; }
190804
+ /* } */ case 6:
190805
+ $s = -1; return;
190806
+ /* } */ case 2:
190807
+ _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; }
190808
+ $panic(_r$3);
190809
+ $s = -1; return;
190810
+ /* */ } 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;
190811
+ };
190812
+ windowImpl.prototype.UploadYCbCr = function(dp, src, sr) { return this.$val.UploadYCbCr(dp, src, sr); };
190813
+ windowImpl.ptr.prototype.Fill = function(dr, src, op) {
190814
+ var dr, op, src, w;
190815
+ w = this;
190816
+ if (w.released) {
190817
+ return;
190818
+ }
190819
+ $panic(new $String("Not implemented"));
190820
+ };
190821
+ windowImpl.prototype.Fill = function(dr, src, op) { return this.$val.Fill(dr, src, op); };
190822
+ windowImpl.ptr.prototype.Draw = function(src2dst, src, sr, op, opts) {
190823
+ var op, opts, sr, src, src2dst, w;
190824
+ w = this;
190825
+ if (w.released) {
190826
+ return;
190827
+ }
190828
+ $panic(new $String("Not implemented"));
190829
+ };
190830
+ windowImpl.prototype.Draw = function(src2dst, src, sr, op, opts) { return this.$val.Draw(src2dst, src, sr, op, opts); };
190831
+ windowImpl.ptr.prototype.DrawUniform = function(src2dst, src, sr, op, opts) {
190832
+ var op, opts, sr, src, src2dst, w;
190833
+ w = this;
190834
+ if (w.released) {
190835
+ return;
190836
+ }
190837
+ $panic(new $String("Not implemented"));
190838
+ };
190839
+ windowImpl.prototype.DrawUniform = function(src2dst, src, sr, op, opts) { return this.$val.DrawUniform(src2dst, src, sr, op, opts); };
190840
+ windowImpl.ptr.prototype.Copy = function(dp, src, sr, op, opts) {
190841
+ var dp, op, opts, sr, src, w;
190842
+ w = this;
190843
+ if (w.released) {
190844
+ return;
190845
+ }
190846
+ $panic(new $String("Not implemented"));
190847
+ };
190848
+ windowImpl.prototype.Copy = function(dp, src, sr, op, opts) { return this.$val.Copy(dp, src, sr, op, opts); };
190849
+ windowImpl.ptr.prototype.Scale = function(dr, src, sr, op, opts) {
190850
+ var dr, op, opts, sr, src, w;
190851
+ w = this;
190852
+ if (w.released) {
190853
+ return;
190854
+ }
190855
+ $panic(new $String("Not implemented"));
190856
+ };
190857
+ windowImpl.prototype.Scale = function(dr, src, sr, op, opts) { return this.$val.Scale(dr, src, sr, op, opts); };
190858
+ newScreenImpl = function() {
190859
+ var s;
190860
+ s = new screenImpl.ptr($clone($clone(js.Global(), js.Value).Get("document"), js.Value));
190861
+ return [s, $ifaceNil];
190862
+ };
190863
+ screenImpl.ptr.prototype.NewBuffer = function(size) {
190864
+ var buffer, s, size;
190865
+ s = this;
190866
+ buffer = newBuffer(s, $clone(size, image.Point));
190867
+ return [buffer, $ifaceNil];
190868
+ };
190869
+ screenImpl.prototype.NewBuffer = function(size) { return this.$val.NewBuffer(size); };
190870
+ screenImpl.ptr.prototype.NewTexture = function(size) {
190871
+ var {$24r, _r, s, size, $s, $r, $c} = $restore(this, {size});
190872
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190873
+ s = this;
190874
+ _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; }
190875
+ $24r = [$ifaceNil, _r];
190876
+ $s = 2; case 2: return $24r;
190877
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewTexture, $c: true, $r, $24r, _r, s, size, $s};return $f;
190878
+ };
190879
+ screenImpl.prototype.NewTexture = function(size) { return this.$val.NewTexture(size); };
190880
+ screenImpl.ptr.prototype.NewWindow = function(opts) {
190881
+ var {_r, opts, s, window, $s, $r, $c} = $restore(this, {opts});
190882
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190883
+ s = this;
190884
+ _r = newWindow(s, opts); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
190885
+ window = _r;
190886
+ $s = -1; return [window, $ifaceNil];
190887
+ /* */ } return; } var $f = {$blk: screenImpl.ptr.prototype.NewWindow, $c: true, $r, _r, opts, s, window, $s};return $f;
190888
+ };
190889
+ screenImpl.prototype.NewWindow = function(opts) { return this.$val.NewWindow(opts); };
190890
+ main = function(f) {
190891
+ var {_tuple, err, f, retErr, s, $s, $r, $c} = $restore(this, {f});
190892
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190893
+ retErr = $ifaceNil;
190894
+ _tuple = newScreenImpl();
190895
+ s = _tuple[0];
190896
+ err = _tuple[1];
190897
+ if (!($interfaceIsEqual(err, $ifaceNil))) {
190898
+ retErr = err;
190899
+ $s = -1; return retErr;
190900
+ }
190901
+ $r = f(s); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190902
+ retErr = $ifaceNil;
190903
+ $s = -1; return retErr;
190904
+ /* */ } return; } var $f = {$blk: main, $c: true, $r, _tuple, err, f, retErr, s, $s};return $f;
190905
+ };
190906
+ newBuffer = function(screen$1, size) {
190907
+ var b, screen$1, size;
190908
+ b = new BufferImpl.ptr(ptrType$4.nil, screen$1, $clone(size, image.Point));
190909
+ return b;
190910
+ };
190911
+ BufferImpl.ptr.prototype.Size = function() {
190912
+ var b;
190913
+ b = this;
190914
+ return b.size;
190915
+ };
190916
+ BufferImpl.prototype.Size = function() { return this.$val.Size(); };
190917
+ BufferImpl.ptr.prototype.Bounds = function() {
190918
+ var b;
190919
+ b = this;
190920
+ return new image.Rectangle.ptr(new image.Point.ptr(0, 0), $clone(b.size, image.Point));
190921
+ };
190922
+ BufferImpl.prototype.Bounds = function() { return this.$val.Bounds(); };
190923
+ BufferImpl.ptr.prototype.RGBA = function() {
190924
+ var {_r, b, $s, $r, $c} = $restore(this, {});
190925
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190926
+ b = this;
190927
+ _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; }
190928
+ $panic(_r);
190929
+ $s = -1; return ptrType$5.nil;
190930
+ /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.RGBA, $c: true, $r, _r, b, $s};return $f;
190931
+ };
190932
+ BufferImpl.prototype.RGBA = function() { return this.$val.RGBA(); };
190933
+ BufferImpl.ptr.prototype.YCbCr = function() {
190934
+ var {_r, b, $s, $r, $c} = $restore(this, {});
190935
+ /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
190936
+ b = this;
190937
+ _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; }
190938
+ $panic(_r);
190939
+ $s = -1; return ptrType$6.nil;
190940
+ /* */ } return; } var $f = {$blk: BufferImpl.ptr.prototype.YCbCr, $c: true, $r, _r, b, $s};return $f;
190941
+ };
190942
+ BufferImpl.prototype.YCbCr = function() { return this.$val.YCbCr(); };
190943
+ BufferImpl.ptr.prototype.GetPictureResult = function() {
190944
+ var b;
190945
+ b = this;
190946
+ return b.pictureResult;
190947
+ };
190948
+ BufferImpl.prototype.GetPictureResult = function() { return this.$val.GetPictureResult(); };
190949
+ BufferImpl.ptr.prototype.SetPictureResult = function(pictureResult) {
190950
+ var b, pictureResult;
190951
+ b = this;
190952
+ b.pictureResult = pictureResult;
190953
+ };
190954
+ BufferImpl.prototype.SetPictureResult = function(pictureResult) { return this.$val.SetPictureResult(pictureResult); };
190955
+ BufferImpl.ptr.prototype.Release = function() {
190956
+ var b;
190957
+ b = this;
190958
+ };
190959
+ BufferImpl.prototype.Release = function() { return this.$val.Release(); };
190960
+ 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)}];
190961
+ 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)}];
190962
+ 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)}];
190963
+ 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: ""}]);
190964
+ screenImpl.init("github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver", [{prop: "doc", name: "doc", embedded: false, exported: false, typ: js.Value, tag: ""}]);
190965
+ 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: ""}]);
190966
+ $init = function() {
190967
+ $pkg.$init = function() {};
190968
+ /* */ 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:
190969
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190970
+ $r = errs.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190971
+ $r = jshelper.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190972
+ $r = dom.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190973
+ $r = screen.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190974
+ $r = f64.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190975
+ $r = image.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190976
+ $r = color.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190977
+ $r = draw.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190978
+ $r = sync.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190979
+ $r = js.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190980
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190981
+ };
190982
+ $pkg.$init = $init;
190983
+ return $pkg;
190984
+ })();
190072
190985
  $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function() {
190073
- var $pkg = {}, $init, errs, jshelper, general, log, js;
190986
+ var $pkg = {}, $init, errs, jshelper, general, nacldriver, js;
190074
190987
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
190075
190988
  jshelper = $packages["github.com/supraio/client-daemon/pkg/jshelper"];
190076
190989
  general = $packages["github.com/supraio/client-daemon/pkg/x264/general"];
190077
- log = $packages["log"];
190990
+ nacldriver = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"];
190078
190991
  js = $packages["syscall/js"];
190079
190992
  $init = function() {
190080
190993
  $pkg.$init = function() {};
@@ -190082,7 +190995,7 @@ $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder"] = (function()
190082
190995
  $r = errs.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190083
190996
  $r = jshelper.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190084
190997
  $r = general.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190085
- $r = log.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190998
+ $r = nacldriver.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190086
190999
  $r = js.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
190087
191000
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
190088
191001
  };
@@ -190549,8 +191462,20 @@ $packages["github.com/supraio/client-daemon/pkg/x264"] = (function() {
190549
191462
  $pkg.$init = $init;
190550
191463
  return $pkg;
190551
191464
  })();
191465
+ $packages["golang.org/x/mobile/event/lifecycle"] = (function() {
191466
+ var $pkg = {}, $init, fmt;
191467
+ fmt = $packages["fmt"];
191468
+ $init = function() {
191469
+ $pkg.$init = function() {};
191470
+ /* */ 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:
191471
+ $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191472
+ /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191473
+ };
191474
+ $pkg.$init = $init;
191475
+ return $pkg;
191476
+ })();
190552
191477
  $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
190553
- 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, screenParams, ScreenManager, ProcessInfo, ProcessInfoManager, ptrType$2, funcType, sliceType$1, sliceType$3, arrayType, ptrType$14, openScreenWindows, mutex, NewScreenManager, NewProcessInfoManager;
191478
+ 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, screenParams, ScreenManager, ProcessInfo, ProcessInfoManager, ptrType$2, funcType, sliceType$1, sliceType$3, arrayType, ptrType$14, openScreenWindows, mutex, NewScreenManager, NewProcessInfoManager;
190554
191479
  binary = $packages["encoding/binary"];
190555
191480
  json = $packages["encoding/json"];
190556
191481
  query = $packages["github.com/google/go-querystring/query"];
@@ -190565,11 +191490,13 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
190565
191490
  stats = $packages["github.com/supraio/client-daemon/pkg/stats"];
190566
191491
  window = $packages["github.com/supraio/client-daemon/pkg/window"];
190567
191492
  x264 = $packages["github.com/supraio/client-daemon/pkg/x264"];
191493
+ nacldriver = $packages["github.com/supraio/client-daemon/pkg/x264/nacldecoder/nacldriver"];
190568
191494
  canvasdriver = $packages["golang.org/x/exp/shiny/driver/canvasdriver"];
190569
191495
  webgldriver = $packages["golang.org/x/exp/shiny/driver/webgldriver"];
190570
191496
  screen = $packages["golang.org/x/exp/shiny/screen"];
190571
191497
  focus = $packages["golang.org/x/mobile/event/focus"];
190572
191498
  key = $packages["golang.org/x/mobile/event/key"];
191499
+ lifecycle = $packages["golang.org/x/mobile/event/lifecycle"];
190573
191500
  mouse = $packages["golang.org/x/mobile/event/mouse"];
190574
191501
  size = $packages["golang.org/x/mobile/event/size"];
190575
191502
  image = $packages["image"];
@@ -191010,23 +191937,25 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191010
191937
  $r = stats.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191011
191938
  $r = window.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191012
191939
  $r = x264.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191013
- $r = canvasdriver.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191014
- $r = webgldriver.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191015
- $r = screen.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191016
- $r = focus.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191017
- $r = key.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191018
- $r = mouse.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191019
- $r = size.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191020
- $r = image.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191021
- $r = io.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191022
- $r = ioutil.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191023
- $r = log.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191024
- $r = os.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191025
- $r = path.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191026
- $r = strings.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191027
- $r = sync.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191028
- $r = js.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191029
- $r = time.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191940
+ $r = nacldriver.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191941
+ $r = canvasdriver.$init(); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191942
+ $r = webgldriver.$init(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191943
+ $r = screen.$init(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191944
+ $r = focus.$init(); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191945
+ $r = key.$init(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191946
+ $r = lifecycle.$init(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191947
+ $r = mouse.$init(); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191948
+ $r = size.$init(); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191949
+ $r = image.$init(); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191950
+ $r = io.$init(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191951
+ $r = ioutil.$init(); /* */ $s = 26; case 26: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191952
+ $r = log.$init(); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191953
+ $r = os.$init(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191954
+ $r = path.$init(); /* */ $s = 29; case 29: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191955
+ $r = strings.$init(); /* */ $s = 30; case 30: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191956
+ $r = sync.$init(); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191957
+ $r = js.$init(); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191958
+ $r = time.$init(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191030
191959
  openScreenWindows = $makeMap($String.keyFor, []);
191031
191960
  mutex = new sync.Mutex.ptr(0, 0);
191032
191961
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
@@ -191034,179 +191963,19 @@ $packages["github.com/supraio/client-daemon/pkg/render"] = (function() {
191034
191963
  $pkg.$init = $init;
191035
191964
  return $pkg;
191036
191965
  })();
191037
- $packages["os/signal"] = (function() {
191038
- var $pkg = {}, $init, context, os, sync, syscall, stopping, handler, arrayType, sliceType, chanType, ptrType, mapType, structType, arrayType$1, handlers, watchSignalLoopOnce, watchSignalLoop, init, signum, enableSignal, Notify, signal_enable, loop;
191039
- context = $packages["context"];
191040
- os = $packages["os"];
191041
- sync = $packages["sync"];
191042
- syscall = $packages["syscall"];
191043
- stopping = $pkg.stopping = $newType(0, $kindStruct, "signal.stopping", true, "os/signal", false, function(c_, h_) {
191044
- this.$val = this;
191045
- if (arguments.length === 0) {
191046
- this.c = $chanNil;
191047
- this.h = ptrType.nil;
191048
- return;
191049
- }
191050
- this.c = c_;
191051
- this.h = h_;
191052
- });
191053
- handler = $pkg.handler = $newType(0, $kindStruct, "signal.handler", true, "os/signal", false, function(mask_) {
191054
- this.$val = this;
191055
- if (arguments.length === 0) {
191056
- this.mask = arrayType$1.zero();
191057
- return;
191058
- }
191059
- this.mask = mask_;
191060
- });
191061
- arrayType = $arrayType($Int64, 65);
191062
- sliceType = $sliceType(stopping);
191063
- chanType = $chanType(os.Signal, true, false);
191064
- ptrType = $ptrType(handler);
191065
- mapType = $mapType(chanType, ptrType);
191066
- structType = $structType("os/signal", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: sync.Mutex, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "ref", name: "ref", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "stopping", name: "stopping", embedded: false, exported: false, typ: sliceType, tag: ""}]);
191067
- arrayType$1 = $arrayType($Uint32, 3);
191068
- init = function() {
191069
- watchSignalLoop = loop;
191070
- };
191071
- signum = function(sig) {
191072
- var _ref, i, sig, sig$1, sig$2;
191073
- _ref = sig;
191074
- if ($assertType(_ref, syscall.Signal, true)[1]) {
191075
- sig$1 = _ref.$val;
191076
- i = ((sig$1 >> 0));
191077
- if (i < 0 || i >= 65) {
191078
- return -1;
191079
- }
191080
- return i;
191081
- } else {
191082
- sig$2 = _ref;
191083
- return -1;
191084
- }
191085
- };
191086
- enableSignal = function(sig) {
191087
- var sig;
191088
- signal_enable(((sig >>> 0)));
191089
- };
191090
- handler.ptr.prototype.want = function(sig) {
191091
- var _q, h, sig, x, x$1, y;
191092
- h = this;
191093
- return !(((((((y = (((sig & 31) >>> 0)), y < 32 ? ((x = h.mask, x$1 = (_q = sig / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) >>> y) : 0) >>> 0)) & 1) >>> 0) === 0));
191094
- };
191095
- handler.prototype.want = function(sig) { return this.$val.want(sig); };
191096
- handler.ptr.prototype.set = function(sig) {
191097
- var _index, _q, h, sig, x, x$1, y;
191098
- h = this;
191099
- _index = (_q = sig / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"));
191100
- (x$1 = h.mask, ((_index < 0 || _index >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[_index] = (((x = h.mask, ((_index < 0 || _index >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_index])) | (((y = (((sig & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0)));
191101
- };
191102
- handler.prototype.set = function(sig) { return this.$val.set(sig); };
191103
- Notify = function(c, sig) {
191104
- var {_entry, _i, _key, _ref, add, c, h, n, s, sig, $s, $deferred, $r, $c} = $restore(this, {c, sig});
191105
- /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
191106
- h = [h];
191107
- if (c === $chanNil) {
191108
- $panic(new $String("os/signal: Notify using nil channel"));
191109
- }
191110
- $r = handlers.Mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191111
- $deferred.push([$methodVal(handlers.Mutex, "Unlock"), []]);
191112
- h[0] = (_entry = $mapIndex(handlers.m,chanType.keyFor(c)), _entry !== undefined ? _entry.v : ptrType.nil);
191113
- if (h[0] === ptrType.nil) {
191114
- if (handlers.m === false) {
191115
- handlers.m = new $global.Map();
191116
- }
191117
- h[0] = new handler.ptr(arrayType$1.zero());
191118
- _key = c; (handlers.m || $throwRuntimeError("assignment to entry in nil map")).set(chanType.keyFor(_key), { k: _key, v: h[0] });
191119
- }
191120
- add = (function(h) { return function $b(n) {
191121
- var {n, x, x$1, x$2, x$3, x$4, x$5, $s, $r, $c} = $restore(this, {n});
191122
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191123
- if (n < 0) {
191124
- $s = -1; return;
191125
- }
191126
- /* */ if (!h[0].want(n)) { $s = 1; continue; }
191127
- /* */ $s = 2; continue;
191128
- /* if (!h[0].want(n)) { */ case 1:
191129
- h[0].set(n);
191130
- /* */ if ((x = (x$1 = handlers.ref, ((n < 0 || n >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[n])), (x.$high === 0 && x.$low === 0))) { $s = 3; continue; }
191131
- /* */ $s = 4; continue;
191132
- /* if ((x = (x$1 = handlers.ref, ((n < 0 || n >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[n])), (x.$high === 0 && x.$low === 0))) { */ case 3:
191133
- enableSignal(n);
191134
- $r = watchSignalLoopOnce.Do((function(h) { return function() {
191135
- if (!(watchSignalLoop === $throwNilPointerError)) {
191136
- $go(watchSignalLoop, []);
191137
- }
191138
- }; })(h)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191139
- /* } */ case 4:
191140
- (x$5 = handlers.ref, ((n < 0 || n >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[n] = (x$2 = (x$3 = handlers.ref, ((n < 0 || n >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[n])), x$4 = new $Int64(0, 1), new $Int64(x$2.$high + x$4.$high, x$2.$low + x$4.$low))));
191141
- /* } */ case 2:
191142
- $s = -1; return;
191143
- /* */ } return; } var $f = {$blk: $b, $c: true, $r, n, x, x$1, x$2, x$3, x$4, x$5, $s};return $f;
191144
- }; })(h);
191145
- /* */ if (sig.$length === 0) { $s = 2; continue; }
191146
- /* */ $s = 3; continue;
191147
- /* if (sig.$length === 0) { */ case 2:
191148
- n = 0;
191149
- /* while (true) { */ case 5:
191150
- /* if (!(n < 65)) { break; } */ if(!(n < 65)) { $s = 6; continue; }
191151
- $r = add(n); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191152
- n = n + (1) >> 0;
191153
- $s = 5; continue;
191154
- case 6:
191155
- $s = 4; continue;
191156
- /* } else { */ case 3:
191157
- _ref = sig;
191158
- _i = 0;
191159
- /* while (true) { */ case 8:
191160
- /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 9; continue; }
191161
- s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]);
191162
- $r = add(signum(s)); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191163
- _i++;
191164
- $s = 8; continue;
191165
- case 9:
191166
- /* } */ case 4:
191167
- $s = -1; return;
191168
- /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: Notify, $c: true, $r, _entry, _i, _key, _ref, add, c, h, n, s, sig, $s, $deferred};return $f; } }
191169
- };
191170
- $pkg.Notify = Notify;
191171
- signal_enable = function(param) {
191172
- var param;
191173
- };
191174
- loop = function() {
191175
- };
191176
- ptrType.methods = [{prop: "want", name: "want", pkg: "os/signal", typ: $funcType([$Int], [$Bool], false)}, {prop: "set", name: "set", pkg: "os/signal", typ: $funcType([$Int], [], false)}, {prop: "clear", name: "clear", pkg: "os/signal", typ: $funcType([$Int], [], false)}];
191177
- stopping.init("os/signal", [{prop: "c", name: "c", embedded: false, exported: false, typ: chanType, tag: ""}, {prop: "h", name: "h", embedded: false, exported: false, typ: ptrType, tag: ""}]);
191178
- handler.init("os/signal", [{prop: "mask", name: "mask", embedded: false, exported: false, typ: arrayType$1, tag: ""}]);
191179
- $init = function() {
191180
- $pkg.$init = function() {};
191181
- /* */ 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:
191182
- $r = context.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191183
- $r = os.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191184
- $r = sync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191185
- $r = syscall.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191186
- handlers = new structType.ptr(new sync.Mutex.ptr(0, 0), false, arrayType.zero(), sliceType.nil);
191187
- watchSignalLoopOnce = new sync.Once.ptr(0, new sync.Mutex.ptr(0, 0));
191188
- watchSignalLoop = $throwNilPointerError;
191189
- init();
191190
- /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191191
- };
191192
- $pkg.$init = $init;
191193
- return $pkg;
191194
- })();
191195
191966
  $packages["main"] = (function() {
191196
- var $pkg = {}, $init, command, config, errs, render, log, os, signal, path, syscall, time, sliceType, sliceType$1, sliceType$2, main, waitOnStopSignal;
191967
+ var $pkg = {}, $init, command, config, errs, helper, render, log, os, path, time, sliceType, sliceType$1, main;
191197
191968
  command = $packages["github.com/supraio/client-daemon/pkg/command"];
191198
191969
  config = $packages["github.com/supraio/client-daemon/pkg/config"];
191199
191970
  errs = $packages["github.com/supraio/client-daemon/pkg/errs"];
191971
+ helper = $packages["github.com/supraio/client-daemon/pkg/helper"];
191200
191972
  render = $packages["github.com/supraio/client-daemon/pkg/render"];
191201
191973
  log = $packages["log"];
191202
191974
  os = $packages["os"];
191203
- signal = $packages["os/signal"];
191204
191975
  path = $packages["path"];
191205
- syscall = $packages["syscall"];
191206
191976
  time = $packages["time"];
191207
191977
  sliceType = $sliceType($String);
191208
191978
  sliceType$1 = $sliceType($emptyInterface);
191209
- sliceType$2 = $sliceType(os.Signal);
191210
191979
  main = function() {
191211
191980
  var {_arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, cfg, commandHandler, err, err$1, logFile, processInfoManager, screenManager, signalChannel, $s, $deferred, $r, $c} = $restore(this, {});
191212
191981
  /* */ $s = $s || 0; var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $curGoroutine.deferStack.push($deferred);
@@ -191276,40 +192045,29 @@ $packages["main"] = (function() {
191276
192045
  /* */ } return; } var $f = {$blk: $b, $c: true, $r, _r$5, err$2, $s};return $f;
191277
192046
  }; })(commandHandler, logFile), []]);
191278
192047
  $r = log.Println(new sliceType$1([new $String("Supra client-daemon started")])); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191279
- $r = waitOnStopSignal(signalChannel); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192048
+ $r = helper.WaitOnStopSignal(signalChannel); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191280
192049
  $r = log.Println(new sliceType$1([new $String("Supra client-daemon is stopping")])); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191281
192050
  $s = -1; return;
191282
192051
  /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { var $f = {$blk: main, $c: true, $r, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, cfg, commandHandler, err, err$1, logFile, processInfoManager, screenManager, signalChannel, $s, $deferred};return $f; } }
191283
192052
  };
191284
- waitOnStopSignal = function(signalChannel) {
191285
- var {_r, sig, signalChannel, $s, $r, $c} = $restore(this, {signalChannel});
191286
- /* */ $s = $s || 0; s: while (true) { switch ($s) { case 0:
191287
- $r = signal.Notify(signalChannel, new sliceType$2([new syscall.Signal(2), new syscall.Signal(6)])); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191288
- _r = $recv(signalChannel); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
191289
- sig = _r[0];
191290
- $r = log.Printf("Signal %s received.\n", new sliceType$1([sig])); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191291
- $s = -1; return;
191292
- /* */ } return; } var $f = {$blk: waitOnStopSignal, $c: true, $r, _r, sig, signalChannel, $s};return $f;
191293
- };
191294
192053
  $init = function() {
191295
192054
  $pkg.$init = function() {};
191296
192055
  /* */ 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:
191297
192056
  $r = command.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191298
192057
  $r = config.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191299
192058
  $r = errs.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191300
- $r = render.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191301
- $r = log.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191302
- $r = os.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191303
- $r = signal.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192059
+ $r = helper.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192060
+ $r = render.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192061
+ $r = log.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192062
+ $r = os.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191304
192063
  $r = path.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191305
- $r = syscall.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191306
- $r = time.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191307
- /* */ if ($pkg === $mainPkg) { $s = 11; continue; }
191308
- /* */ $s = 12; continue;
191309
- /* if ($pkg === $mainPkg) { */ case 11:
191310
- $r = main(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192064
+ $r = time.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
192065
+ /* */ if ($pkg === $mainPkg) { $s = 10; continue; }
192066
+ /* */ $s = 11; continue;
192067
+ /* if ($pkg === $mainPkg) { */ case 10:
192068
+ $r = main(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
191311
192069
  $mainFinished = true;
191312
- /* } */ case 12:
192070
+ /* } */ case 11:
191313
192071
  /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f;
191314
192072
  };
191315
192073
  $pkg.$init = $init;