diff options
Diffstat (limited to 'deps/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html')
-rw-r--r-- | deps/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html | 602 |
1 files changed, 602 insertions, 0 deletions
diff --git a/deps/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html b/deps/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html new file mode 100644 index 0000000000..3542da4f63 --- /dev/null +++ b/deps/npm/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html @@ -0,0 +1,602 @@ +<!doctype html> +<html lang="en"> +<head> + <title>Code coverage report for lib/_stream_transform.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">lib/</a> _stream_transform.js + </h1> + <div class='clearfix'> + <div class='fl pad1y space-right2'> + <span class="strong">92.11% </span> + <span class="quiet">Statements</span> + <span class='fraction'>70/76</span> + </div> + <div class='fl pad1y space-right2'> + <span class="strong">84.21% </span> + <span class="quiet">Branches</span> + <span class='fraction'>32/38</span> + </div> + <div class='fl pad1y space-right2'> + <span class="strong">90.91% </span> + <span class="quiet">Functions</span> + <span class='fraction'>10/11</span> + </div> + <div class='fl pad1y space-right2'> + <span class="strong">98.48% </span> + <span class="quiet">Lines</span> + <span class='fraction'>65/66</span> + </div> + </div> + </div> + <div class='status-line high'></div> +<pre><table class="coverage"> +<tr><td class="line-count quiet">1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180</td><td class="line-coverage quiet"><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-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-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-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-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-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-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">49×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">49×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">49×</span> +<span class="cline-any cline-yes">49×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">49×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">49×</span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">49×</span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-yes">113×</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">49×</span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">24×</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">24×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-yes">13×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">13×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">24×</span> +<span class="cline-any cline-yes">19×</span> +<span class="cline-any cline-yes">2×</span> +<span class="cline-any cline-yes">17×</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">49×</span> +<span class="cline-any cline-yes">127×</span> +<span class="cline-any cline-yes">127×</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-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">49×</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">49×</span> +<span class="cline-any cline-yes">117×</span> +<span class="cline-any cline-yes">117×</span> +<span class="cline-any cline-yes">117×</span> +<span class="cline-any cline-yes">117×</span> +<span class="cline-any cline-yes">117×</span> +<span class="cline-any cline-yes">117×</span> +<span class="cline-any cline-yes">117×</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">49×</span> +<span class="cline-any cline-yes">310×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">310×</span> +<span class="cline-any cline-yes">116×</span> +<span class="cline-any cline-yes">116×</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">194×</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">49×</span> +<span class="cline-any cline-yes">19×</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">19×</span> +<span class="cline-any cline-yes">19×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">19×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">19×</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">19×</span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">// a transform stream is a readable/writable stream where you do +// something with the data. Sometimes it's called a "filter", +// but that's not a great name for it, since that implies a thing where +// some bits pass through, and others are simply ignored. (That would +// be a valid example of a transform, of course.) +// +// While the output is causally related to the input, it's not a +// necessarily symmetric or synchronous transformation. For example, +// a zlib stream might take multiple plain-text writes(), and then +// emit a single compressed chunk some time in the future. +// +// Here's how this works: +// +// The Transform stream has all the aspects of the readable and writable +// stream classes. When you write(chunk), that calls _write(chunk,cb) +// internally, and returns false if there's a lot of pending writes +// buffered up. When you call read(), that calls _read(n) until +// there's enough pending readable data buffered up. +// +// In a transform stream, the written data is placed in a buffer. When +// _read(n) is called, it transforms the queued up data, calling the +// buffered _write cb's as it consumes chunks. If consuming a single +// written chunk would result in multiple output chunks, then the first +// outputted bit calls the readcb, and subsequent chunks just go into +// the read buffer, and will cause it to emit 'readable' if necessary. +// +// This way, back-pressure is actually determined by the reading side, +// since _read has to be called to start processing a new chunk. However, +// a pathological inflate type of transform can cause excessive buffering +// here. For example, imagine a stream where every byte of input is +// interpreted as an integer from 0-255, and then results in that many +// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in +// 1kb of data being output. In this case, you could write a very small +// amount of input, and end up with a very large amount of output. In +// such a pathological inflating mechanism, there'd be no way to tell +// the system to stop doing the transform. A single 4MB write could +// cause the system to run out of memory. +// +// However, even in such a pathological case, only a single written chunk +// would be consumed, and then the rest would wait (un-transformed) until +// the results of the previous transformed chunk were consumed. + +'use strict'; + +module.exports = Transform; + +var Duplex = require('./_stream_duplex'); + +/*<replacement>*/ +var util = require('core-util-is'); +util.inherits = require('inherits'); +/*</replacement>*/ + +util.inherits(Transform, Duplex); + +function TransformState(stream) { + this.afterTransform = function (er, data) { + return afterTransform(stream, er, data); + }; + + this.needTransform = false; + this.transforming = false; + this.writecb = null; + this.writechunk = null; + this.writeencoding = null; +} + +function afterTransform(stream, er, data) { + var ts = stream._transformState; + ts.transforming = false; + + var cb = ts.writecb; + + <span class="missing-if-branch" title="if path not taken" >I</span>if (!cb) <span class="cstat-no" title="statement not covered" >return stream.emit('error', new Error('no writecb in Transform class'));</span> + + ts.writechunk = null; + ts.writecb = null; + + if (data !== null && data !== undefined) stream.push(data); + + cb(er); + + var rs = stream._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + stream._read(rs.highWaterMark); + } +} + +function Transform(options) { + <span class="missing-if-branch" title="if path not taken" >I</span>if (!(this instanceof Transform)) <span class="cstat-no" title="statement not covered" >return new Transform(options);</span> + + Duplex.call(this, options); + + this._transformState = new TransformState(this); + + // when the writable side finishes, then flush out anything remaining. + var stream = this; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; + + // we have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + + if (typeof options.flush === 'function') this._flush = options.flush; + } + + this.once('prefinish', function () { + if (typeof this._flush === 'function') this._flush(function (er) { + done(stream, er); + });else done(stream); + }); +} + +Transform.prototype.push = function (chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); +}; + +// This is the part where you do stuff! +// override this function in implementation classes. +// 'chunk' is an input chunk. +// +// Call `push(newChunk)` to pass along transformed output +// to the readable side. You may call 'push' zero or more times. +// +// Call `cb(err)` when you are done with this chunk. If you pass +// an error, then that'll put the hurt on the whole operation. If you +// never call cb(), then you'll never get another chunk. +Transform.prototype._transform = <span class="fstat-no" title="function not covered" >function (chunk, encoding, cb) {</span> +<span class="cstat-no" title="statement not covered" > throw new Error('Not implemented');</span> +}; + +Transform.prototype._write = function (chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + <span class="missing-if-branch" title="else path not taken" >E</span>if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); + } +}; + +// Doesn't matter what the args are here. +// _transform does all the work. +// That we got here means that the readable side wants more data. +Transform.prototype._read = function (n) { + var ts = this._transformState; + + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + // mark that we need a transform, so that any data that comes in + // will get processed, now that we've asked for it. + ts.needTransform = true; + } +}; + +function done(stream, er) { + <span class="missing-if-branch" title="if path not taken" >I</span>if (er) <span class="cstat-no" title="statement not covered" >return stream.emit('error', er);</span> + + // if there's nothing in the write buffer, then that means + // that nothing more will ever be provided + var ws = stream._writableState; + var ts = stream._transformState; + + <span class="missing-if-branch" title="if path not taken" >I</span>if (ws.length) <span class="cstat-no" title="statement not covered" >throw new Error('Calling transform done when ws.length != 0');</span> + + <span class="missing-if-branch" title="if path not taken" >I</span>if (ts.transforming) <span class="cstat-no" title="statement not covered" >throw new Error('Calling transform done when still transforming');</span> + + return stream.push(null); +}</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 Wed May 18 2016 10:10:05 GMT-0400 (EDT) +</div> +</div> +<script src="../prettify.js"></script> +<script> +window.onload = function () { + if (typeof prettyPrint === 'function') { + prettyPrint(); + } +}; +</script> +<script src="../sorter.js"></script> +</body> +</html> |