Skip to content

Instantly share code, notes, and snippets.

@flimzy
Created July 8, 2017 11:38
Show Gist options
  • Save flimzy/714c7c8a3f5541c1b4595421929b3020 to your computer and use it in GitHub Desktop.
Save flimzy/714c7c8a3f5541c1b4595421929b3020 to your computer and use it in GitHub Desktop.
GopherJS transpilation of func (l *Logger) Output in the standard library 'log' package
Logger.ptr.prototype.Output = function(calldepth, s) {
var $ptr, _r, _tuple, _tuple$1, calldepth, err, file, l, line, now, ok, s, $s, $deferred, $r;
/* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $ptr = $f.$ptr; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; calldepth = $f.calldepth; err = $f.err; file = $f.file; l = $f.l; line = $f.line; now = $f.now; ok = $f.ok; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred);
l = this;
now = $clone(time.Now(), time.Time);
file = "";
line = 0;
l.mu.Lock();
$deferred.push([$methodVal(l.mu, "Unlock"), []]);
if (!(((l.flag & 24) === 0))) {
l.mu.Unlock();
ok = false;
_tuple = runtime.Caller(calldepth);
file = _tuple[1];
line = _tuple[2];
ok = _tuple[3];
if (!ok) {
file = "???";
line = 0;
}
l.mu.Lock();
}
l.buf = $subslice(l.buf, 0, 0);
$r = l.formatHeader((l.$ptr_buf || (l.$ptr_buf = new ptrType(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, l))), $clone(now, time.Time), file, line); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; }
l.buf = $appendSlice(l.buf, s);
if ((s.length === 0) || !((s.charCodeAt((s.length - 1 >> 0)) === 10))) {
l.buf = $append(l.buf, 10);
}
_r = l.out.Write(l.buf); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; }
_tuple$1 = _r;
err = _tuple$1[1];
$s = -1; return err;
/* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Logger.ptr.prototype.Output }; } $f.$ptr = $ptr; $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.calldepth = calldepth; $f.err = err; $f.file = file; $f.l = l; $f.line = line; $f.now = now; $f.ok = ok; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } }
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment