index.js.html 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <title>Code coverage report for async-throttle/index.js</title>
  5. <meta charset="utf-8">
  6. <link rel="stylesheet" href="../prettify.css">
  7. <link rel="stylesheet" href="../base.css">
  8. <style type='text/css'>
  9. div.coverage-summary .sorter {
  10. background-image: url(../sort-arrow-sprite.png);
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <div class="header high">
  16. <h1>Code coverage report for <span class="entity">async-throttle/index.js</span></h1>
  17. <h2>
  18. Statements: <span class="metric">100% <small>(37 / 37)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  19. Branches: <span class="metric">92.86% <small>(13 / 14)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  20. Functions: <span class="metric">100% <small>(7 / 7)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  21. Lines: <span class="metric">100% <small>(37 / 37)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  22. Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
  23. </h2>
  24. <div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">async-throttle/</a> &#187; index.js</div>
  25. </div>
  26. <div class="body">
  27. <pre><table class="coverage">
  28. <tr><td class="line-count">1
  29. 2
  30. 3
  31. 4
  32. 5
  33. 6
  34. 7
  35. 8
  36. 9
  37. 10
  38. 11
  39. 12
  40. 13
  41. 14
  42. 15
  43. 16
  44. 17
  45. 18
  46. 19
  47. 20
  48. 21
  49. 22
  50. 23
  51. 24
  52. 25
  53. 26
  54. 27
  55. 28
  56. 29
  57. 30
  58. 31
  59. 32
  60. 33
  61. 34
  62. 35
  63. 36
  64. 37
  65. 38
  66. 39
  67. 40
  68. 41
  69. 42
  70. 43
  71. 44
  72. 45
  73. 46
  74. 47
  75. 48
  76. 49
  77. 50
  78. 51
  79. 52
  80. 53
  81. 54
  82. 55
  83. 56
  84. 57
  85. 58
  86. 59
  87. 60
  88. 61
  89. 62
  90. 63
  91. 64
  92. 65
  93. 66
  94. 67
  95. 68</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span>
  96. <span class="cline-any cline-neutral">&nbsp;</span>
  97. <span class="cline-any cline-yes">1</span>
  98. <span class="cline-any cline-yes">7</span>
  99. <span class="cline-any cline-yes">1</span>
  100. <span class="cline-any cline-neutral">&nbsp;</span>
  101. <span class="cline-any cline-neutral">&nbsp;</span>
  102. <span class="cline-any cline-yes">6</span>
  103. <span class="cline-any cline-yes">6</span>
  104. <span class="cline-any cline-yes">6</span>
  105. <span class="cline-any cline-yes">6</span>
  106. <span class="cline-any cline-yes">6</span>
  107. <span class="cline-any cline-yes">6</span>
  108. <span class="cline-any cline-neutral">&nbsp;</span>
  109. <span class="cline-any cline-neutral">&nbsp;</span>
  110. <span class="cline-any cline-yes">1</span>
  111. <span class="cline-any cline-neutral">&nbsp;</span>
  112. <span class="cline-any cline-neutral">&nbsp;</span>
  113. <span class="cline-any cline-neutral">&nbsp;</span>
  114. <span class="cline-any cline-neutral">&nbsp;</span>
  115. <span class="cline-any cline-neutral">&nbsp;</span>
  116. <span class="cline-any cline-yes">1</span>
  117. <span class="cline-any cline-yes">3</span>
  118. <span class="cline-any cline-yes">13</span>
  119. <span class="cline-any cline-yes">13</span>
  120. <span class="cline-any cline-yes">13</span>
  121. <span class="cline-any cline-neutral">&nbsp;</span>
  122. <span class="cline-any cline-neutral">&nbsp;</span>
  123. <span class="cline-any cline-neutral">&nbsp;</span>
  124. <span class="cline-any cline-yes">1</span>
  125. <span class="cline-any cline-neutral">&nbsp;</span>
  126. <span class="cline-any cline-yes">19</span>
  127. <span class="cline-any cline-neutral">&nbsp;</span>
  128. <span class="cline-any cline-neutral">&nbsp;</span>
  129. <span class="cline-any cline-neutral">&nbsp;</span>
  130. <span class="cline-any cline-yes">1</span>
  131. <span class="cline-any cline-yes">45</span>
  132. <span class="cline-any cline-yes">6</span>
  133. <span class="cline-any cline-neutral">&nbsp;</span>
  134. <span class="cline-any cline-yes">39</span>
  135. <span class="cline-any cline-yes">13</span>
  136. <span class="cline-any cline-yes">13</span>
  137. <span class="cline-any cline-yes">13</span>
  138. <span class="cline-any cline-yes">13</span>
  139. <span class="cline-any cline-neutral">&nbsp;</span>
  140. <span class="cline-any cline-neutral">&nbsp;</span>
  141. <span class="cline-any cline-yes">39</span>
  142. <span class="cline-any cline-yes">18</span>
  143. <span class="cline-any cline-yes">6</span>
  144. <span class="cline-any cline-yes">6</span>
  145. <span class="cline-any cline-neutral">&nbsp;</span>
  146. <span class="cline-any cline-neutral">&nbsp;</span>
  147. <span class="cline-any cline-neutral">&nbsp;</span>
  148. <span class="cline-any cline-neutral">&nbsp;</span>
  149. <span class="cline-any cline-yes">1</span>
  150. <span class="cline-any cline-yes">6</span>
  151. <span class="cline-any cline-yes">6</span>
  152. <span class="cline-any cline-yes">6</span>
  153. <span class="cline-any cline-neutral">&nbsp;</span>
  154. <span class="cline-any cline-neutral">&nbsp;</span>
  155. <span class="cline-any cline-neutral">&nbsp;</span>
  156. <span class="cline-any cline-yes">1</span>
  157. <span class="cline-any cline-yes">13</span>
  158. <span class="cline-any cline-yes">13</span>
  159. <span class="cline-any cline-neutral">&nbsp;</span>
  160. <span class="cline-any cline-neutral">&nbsp;</span>
  161. <span class="cline-any cline-yes">1</span>
  162. <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
  163. &nbsp;
  164. function Queue(options) {
  165. if (!(this instanceof Queue)) {
  166. return new Queue(options);
  167. }
  168. &nbsp;
  169. options = options || {};
  170. this.concurrency = options.concurrency || Infinity;
  171. this.pending = 0;
  172. this.jobs = [];
  173. this.cbs = [];
  174. this._done = done.bind(this);
  175. }
  176. &nbsp;
  177. var arrayAddMethods = [
  178. 'push',
  179. 'unshift',
  180. 'splice'
  181. ];
  182. &nbsp;
  183. arrayAddMethods.forEach(function(method) {
  184. Queue.prototype[method] = function() {
  185. var methodResult = Array.prototype[method].apply(this.jobs, arguments);
  186. this._run();
  187. return methodResult;
  188. };
  189. });
  190. &nbsp;
  191. Object.defineProperty(Queue.prototype, 'length', {
  192. get: function() {
  193. return this.pending + this.jobs.length;
  194. }
  195. });
  196. &nbsp;
  197. Queue.prototype._run = function() {
  198. if (this.pending === this.concurrency) {
  199. return;
  200. }
  201. if (this.jobs.length) {
  202. var job = this.jobs.shift();
  203. this.pending++;
  204. job(this._done);
  205. this._run();
  206. }
  207. &nbsp;
  208. if (this.pending === 0) {
  209. while (this.cbs.length !== 0) {
  210. var cb = this.cbs.pop();
  211. process.nextTick(cb);
  212. }
  213. }
  214. };
  215. &nbsp;
  216. Queue.prototype.onDone = function(cb) {
  217. <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof cb === 'function') {
  218. this.cbs.push(cb);
  219. this._run();
  220. }
  221. };
  222. &nbsp;
  223. function done() {
  224. this.pending--;
  225. this._run();
  226. }
  227. &nbsp;
  228. module.exports = Queue;
  229. &nbsp;</pre></td></tr>
  230. </table></pre>
  231. </div>
  232. <div class="footer">
  233. <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Mon Sep 11 2017 11:14:14 GMT-0500 (CDT)</div>
  234. </div>
  235. <script src="../prettify.js"></script>
  236. <script>
  237. window.onload = function () {
  238. if (typeof prettyPrint === 'function') {
  239. prettyPrint();
  240. }
  241. };
  242. </script>
  243. <script src="../sorter.js"></script>
  244. </body>
  245. </html>