| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500 | <!doctype html><html lang="en"><head>    <title>Code coverage report for mute.js</title>    <meta charset="utf-8" />    <link rel="stylesheet" href="../prettify.css" />    <link rel="stylesheet" href="../base.css" />    <meta name="viewport" content="width=device-width, initial-scale=1">    <style type='text/css'>        .coverage-summary .sorter {            background-image: url(../sort-arrow-sprite.png);        }    </style></head><body><div class='wrapper'>  <div class='pad1'>    <h1>      <a href="../index.html">all files</a> / <a href="index.html">__root__/</a> mute.js    </h1>    <div class='clearfix'>      <div class='fl pad1y space-right2'>        <span class="strong">77.03% </span>        <span class="quiet">Statements</span>        <span class='fraction'>57/74</span>      </div>      <div class='fl pad1y space-right2'>        <span class="strong">57.14% </span>        <span class="quiet">Branches</span>        <span class='fraction'>28/49</span>      </div>      <div class='fl pad1y space-right2'>        <span class="strong">93.33% </span>        <span class="quiet">Functions</span>        <span class='fraction'>14/15</span>      </div>      <div class='fl pad1y space-right2'>        <span class="strong">79.1% </span>        <span class="quiet">Lines</span>        <span class='fraction'>53/67</span>      </div>    </div>  </div>  <div class='status-line medium'></div><pre><table class="coverage"><tr><td class="line-count quiet">123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">7×</span><span class="cline-any cline-yes">7×</span><span class="cline-any cline-yes">7×</span><span class="cline-any cline-yes">7×</span><span class="cline-any cline-yes">7×</span><span class="cline-any cline-yes">7×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">7×</span><span class="cline-any cline-yes">7×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">10×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">6×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">5×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">8×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">5×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">5×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">25×</span><span class="cline-any cline-yes">13×</span><span class="cline-any cline-yes">8×</span><span class="cline-any cline-no"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">8×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">8×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">20×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-no"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-yes">2×</span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">3×</span><span class="cline-any cline-no"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-no"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-neutral"> </span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-yes">1×</span><span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">var Stream = require('stream') module.exports = MuteStream // var out = new MuteStream(process.stdout)// argument auto-pipesfunction MuteStream (opts) {  Stream.apply(this)  opts = opts || {}  this.writable = this.readable = true  this.muted = false  this.on('pipe', this._onpipe)  this.replace = opts.replace   // For readline-type situations  // This much at the start of a line being redrawn after a ctrl char  // is seen (such as backspace) won't be redrawn as the replacement  this._prompt = opts.prompt || null  this._hadControl = false} MuteStream.prototype = Object.create(Stream.prototype) Object.defineProperty(MuteStream.prototype, 'constructor', {  value: MuteStream,  enumerable: false}) MuteStream.prototype.mute = function () {  this.muted = true} MuteStream.prototype.unmute = function () {  this.muted = false} Object.defineProperty(MuteStream.prototype, '_onpipe', {  value: onPipe,  enumerable: false,  writable: true,  configurable: true}) function onPipe (src) {  this._src = src} Object.defineProperty(MuteStream.prototype, 'isTTY', {  get: getIsTTY,  set: setIsTTY,  enumerable: true,  configurable: true}) function getIsTTY () {  return( (this._dest) ? this._dest.isTTY        : (this._src) ? this._src.isTTY        : false        )} // basically just get replace the getter/setter with a regular valuefunction setIsTTY (isTTY) {  Object.defineProperty(this, 'isTTY', {    value: isTTY,    enumerable: true,    writable: true,    configurable: true  })} Object.defineProperty(MuteStream.prototype, 'rows', {  get: function () {    return( this._dest ? this._dest.rows          : this._src ? <span class="branch-0 cbranch-no" title="branch not covered" >this._src.rows</span>          : undefined )  }, enumerable: true, configurable: true }) Object.defineProperty(MuteStream.prototype, 'columns', {  get: function () {    return( this._dest ? this._dest.columns          : this._src ? <span class="branch-0 cbranch-no" title="branch not covered" >this._src.columns</span>          : undefined )  }, enumerable: true, configurable: true })  MuteStream.prototype.pipe = function (dest, options) {  this._dest = dest  return Stream.prototype.pipe.call(this, dest, options)} MuteStream.prototype.pause = function () {  <span class="missing-if-branch" title="else path not taken" >E</span>if (this._src) return this._src.pause()} MuteStream.prototype.resume = function () {  <span class="missing-if-branch" title="else path not taken" >E</span>if (this._src) return this._src.resume()} MuteStream.prototype.write = function (c) {  if (this.muted) {    if (!this.replace) return true    <span class="missing-if-branch" title="if path not taken" >I</span>if (c.match(/^\u001b/)) {<span class="cstat-no" title="statement not covered" >      if(c.indexOf(this._prompt) === 0) {</span><span class="cstat-no" title="statement not covered" >        c = c.substr(this._prompt.length);</span><span class="cstat-no" title="statement not covered" >        c = c.replace(/./g, this.replace);</span><span class="cstat-no" title="statement not covered" >        c = this._prompt + c;</span>      }<span class="cstat-no" title="statement not covered" >      this._hadControl = true</span><span class="cstat-no" title="statement not covered" >      return this.emit('data', c)</span>    } else {      <span class="missing-if-branch" title="if path not taken" >I</span>if (this._prompt && <span class="branch-1 cbranch-no" title="branch not covered" >this._hadControl </span>&&<span class="branch-2 cbranch-no" title="branch not covered" >          c.indexOf(this._prompt) === 0)</span> {<span class="cstat-no" title="statement not covered" >        this._hadControl = false</span><span class="cstat-no" title="statement not covered" >        this.emit('data', this._prompt)</span><span class="cstat-no" title="statement not covered" >        c = c.substr(this._prompt.length)</span>      }      c = c.toString().replace(/./g, this.replace)    }  }  this.emit('data', c)} MuteStream.prototype.end = function (c) {  <span class="missing-if-branch" title="else path not taken" >E</span>if (this.muted) {    <span class="missing-if-branch" title="if path not taken" >I</span>if (c && this.replace) {<span class="cstat-no" title="statement not covered" >      c = c.toString().replace(/./g, this.replace)</span>    } else {      c = null    }  }  <span class="missing-if-branch" title="if path not taken" >I</span>if (c) <span class="cstat-no" title="statement not covered" >this.emit('data', c)</span>  this.emit('end')} function proxy (fn) { return <span class="fstat-no" title="function not covered" >function () {</span><span class="cstat-no" title="statement not covered" >  var d = this._dest</span><span class="cstat-no" title="statement not covered" >  var s = this._src</span><span class="cstat-no" title="statement not covered" >  if (d && d[fn]) <span class="cstat-no" title="statement not covered" >d[fn].apply(d, arguments)</span></span><span class="cstat-no" title="statement not covered" >  if (s && s[fn]) <span class="cstat-no" title="statement not covered" >s[fn].apply(s, arguments)</span></span>}} MuteStream.prototype.destroy = proxy('destroy')MuteStream.prototype.destroySoon = proxy('destroySoon')MuteStream.prototype.close = proxy('close') </pre></td></tr></table></pre><div class='push'></div><!-- for sticky footer --></div><!-- /wrapper --><div class='footer quiet pad2 space-top1 center small'>  Code coverage  generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Feb 12 2016 22:19:00 GMT-0800 (PST)</div></div><script src="../prettify.js"></script><script>window.onload = function () {        if (typeof prettyPrint === 'function') {            prettyPrint();        }};</script><script src="../sorter.js"></script></body></html>
 |