UNPKG

36.2 kBHTMLView Raw
1<!doctype html>
2<html lang="en">
3<head>
4 <title>Code coverage report for eventsource.js</title>
5 <meta charset="utf-8" />
6 <link rel="stylesheet" href="prettify.css" />
7 <link rel="stylesheet" href="base.css" />
8 <meta name="viewport" content="width=device-width, initial-scale=1">
9 <style type='text/css'>
10 .coverage-summary .sorter {
11 background-image: url(sort-arrow-sprite.png);
12 }
13 </style>
14</head>
15<body>
16<div class='wrapper'>
17 <div class='pad1'>
18 <h1>
19 <a href="index.html">All files</a> eventsource.js
20 </h1>
21 <div class='clearfix'>
22 <div class='fl pad1y space-right2'>
23 <span class="strong">92.82% </span>
24 <span class="quiet">Statements</span>
25 <span class='fraction'>181/195</span>
26 </div>
27 <div class='fl pad1y space-right2'>
28 <span class="strong">81.3% </span>
29 <span class="quiet">Branches</span>
30 <span class='fraction'>100/123</span>
31 </div>
32 <div class='fl pad1y space-right2'>
33 <span class="strong">90.48% </span>
34 <span class="quiet">Functions</span>
35 <span class='fraction'>19/21</span>
36 </div>
37 <div class='fl pad1y space-right2'>
38 <span class="strong">93.62% </span>
39 <span class="quiet">Lines</span>
40 <span class='fraction'>176/188</span>
41 </div>
42 </div>
43 </div>
44 <div class='status-line high'></div>
45<pre><table class="coverage">
46<tr><td class="line-count quiet">1
472
483
494
505
516
527
538
549
5510
5611
5712
5813
5914
6015
6116
6217
6318
6419
6520
6621
6722
6823
6924
7025
7126
7227
7328
7429
7530
7631
7732
7833
7934
8035
8136
8237
8338
8439
8540
8641
8742
8843
8944
9045
9146
9247
9348
9449
9550
9651
9752
9853
9954
10055
10156
10257
10358
10459
10560
10661
10762
10863
10964
11065
11166
11267
11368
11469
11570
11671
11772
11873
11974
12075
12176
12277
12378
12479
12580
12681
12782
12883
12984
13085
13186
13287
13388
13489
13590
13691
13792
13893
13994
14095
14196
14297
14398
14499
145100
146101
147102
148103
149104
150105
151106
152107
153108
154109
155110
156111
157112
158113
159114
160115
161116
162117
163118
164119
165120
166121
167122
168123
169124
170125
171126
172127
173128
174129
175130
176131
177132
178133
179134
180135
181136
182137
183138
184139
185140
186141
187142
188143
189144
190145
191146
192147
193148
194149
195150
196151
197152
198153
199154
200155
201156
202157
203158
204159
205160
206161
207162
208163
209164
210165
211166
212167
213168
214169
215170
216171
217172
218173
219174
220175
221176
222177
223178
224179
225180
226181
227182
228183
229184
230185
231186
232187
233188
234189
235190
236191
237192
238193
239194
240195
241196
242197
243198
244199
245200
246201
247202
248203
249204
250205
251206
252207
253208
254209
255210
256211
257212
258213
259214
260215
261216
262217
263218
264219
265220
266221
267222
268223
269224
270225
271226
272227
273228
274229
275230
276231
277232
278233
279234
280235
281236
282237
283238
284239
285240
286241
287242
288243
289244
290245
291246
292247
293248
294249
295250
296251
297252
298253
299254
300255
301256
302257
303258
304259
305260
306261
307262
308263
309264
310265
311266
312267
313268
314269
315270
316271
317272
318273
319274
320275
321276
322277
323278
324279
325280
326281
327282
328283
329284
330285
331286
332287
333288
334289
335290
336291
337292
338293
339294
340295
341296
342297
343298
344299
345300
346301
347302
348303
349304
350305
351306
352307
353308
354309
355310
356311
357312
358313
359314
360315
361316
362317
363318
364319
365320
366321
367322
368323
369324
370325
371326
372327
373328
374329
375330
376331
377332
378333
379334
380335
381336
382337
383338
384339
385340
386341
387342
388343
389344
390345
391346
392347
393348
394349
395350
396351
397352
398353
399354
400355
401356
402357
403358
404359
405360
406361
407362
408363
409364
410365
411366
412367
413368
414369
415370
416371
417372
418373
419374
420375
421376
422377
423378
424379
425380
426381
427382
428383
429384
430385
431386
432387
433388
434389
435390</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
436<span class="cline-any cline-yes">1x</span>
437<span class="cline-any cline-yes">1x</span>
438<span class="cline-any cline-yes">1x</span>
439<span class="cline-any cline-yes">1x</span>
440<span class="cline-any cline-yes">1x</span>
441<span class="cline-any cline-neutral">&nbsp;</span>
442<span class="cline-any cline-yes">1x</span>
443<span class="cline-any cline-neutral">&nbsp;</span>
444<span class="cline-any cline-neutral">&nbsp;</span>
445<span class="cline-any cline-neutral">&nbsp;</span>
446<span class="cline-any cline-neutral">&nbsp;</span>
447<span class="cline-any cline-neutral">&nbsp;</span>
448<span class="cline-any cline-neutral">&nbsp;</span>
449<span class="cline-any cline-neutral">&nbsp;</span>
450<span class="cline-any cline-neutral">&nbsp;</span>
451<span class="cline-any cline-neutral">&nbsp;</span>
452<span class="cline-any cline-neutral">&nbsp;</span>
453<span class="cline-any cline-neutral">&nbsp;</span>
454<span class="cline-any cline-neutral">&nbsp;</span>
455<span class="cline-any cline-yes">54x</span>
456<span class="cline-any cline-yes">54x</span>
457<span class="cline-any cline-neutral">&nbsp;</span>
458<span class="cline-any cline-yes">5x</span>
459<span class="cline-any cline-neutral">&nbsp;</span>
460<span class="cline-any cline-neutral">&nbsp;</span>
461<span class="cline-any cline-neutral">&nbsp;</span>
462<span class="cline-any cline-yes">54x</span>
463<span class="cline-any cline-neutral">&nbsp;</span>
464<span class="cline-any cline-yes">9x</span>
465<span class="cline-any cline-neutral">&nbsp;</span>
466<span class="cline-any cline-neutral">&nbsp;</span>
467<span class="cline-any cline-neutral">&nbsp;</span>
468<span class="cline-any cline-yes">54x</span>
469<span class="cline-any cline-yes">54x</span>
470<span class="cline-any cline-neutral">&nbsp;</span>
471<span class="cline-any cline-neutral">&nbsp;</span>
472<span class="cline-any cline-yes">1776x</span>
473<span class="cline-any cline-yes">1773x</span>
474<span class="cline-any cline-yes">1773x</span>
475<span class="cline-any cline-neutral">&nbsp;</span>
476<span class="cline-any cline-neutral">&nbsp;</span>
477<span class="cline-any cline-neutral">&nbsp;</span>
478<span class="cline-any cline-yes">1773x</span>
479<span class="cline-any cline-yes">1x</span>
480<span class="cline-any cline-yes">1x</span>
481<span class="cline-any cline-neutral">&nbsp;</span>
482<span class="cline-any cline-yes">1773x</span>
483<span class="cline-any cline-yes">1735x</span>
484<span class="cline-any cline-yes">1x</span>
485<span class="cline-any cline-neutral">&nbsp;</span>
486<span class="cline-any cline-yes">1734x</span>
487<span class="cline-any cline-neutral">&nbsp;</span>
488<span class="cline-any cline-neutral">&nbsp;</span>
489<span class="cline-any cline-neutral">&nbsp;</span>
490<span class="cline-any cline-neutral">&nbsp;</span>
491<span class="cline-any cline-yes">54x</span>
492<span class="cline-any cline-yes">54x</span>
493<span class="cline-any cline-yes">3x</span>
494<span class="cline-any cline-yes">3x</span>
495<span class="cline-any cline-neutral">&nbsp;</span>
496<span class="cline-any cline-neutral">&nbsp;</span>
497<span class="cline-any cline-yes">54x</span>
498<span class="cline-any cline-yes">54x</span>
499<span class="cline-any cline-yes">54x</span>
500<span class="cline-any cline-neutral">&nbsp;</span>
501<span class="cline-any cline-yes">54x</span>
502<span class="cline-any cline-neutral">&nbsp;</span>
503<span class="cline-any cline-neutral">&nbsp;</span>
504<span class="cline-any cline-yes">1790x</span>
505<span class="cline-any cline-yes">1790x</span>
506<span class="cline-any cline-yes">1790x</span>
507<span class="cline-any cline-yes">1790x</span>
508<span class="cline-any cline-yes">1790x</span>
509<span class="cline-any cline-yes">3x</span>
510<span class="cline-any cline-yes">5x</span>
511<span class="cline-any cline-yes">5x</span>
512<span class="cline-any cline-yes">4x</span>
513<span class="cline-any cline-neutral">&nbsp;</span>
514<span class="cline-any cline-neutral">&nbsp;</span>
515<span class="cline-any cline-neutral">&nbsp;</span>
516<span class="cline-any cline-neutral">&nbsp;</span>
517<span class="cline-any cline-neutral">&nbsp;</span>
518<span class="cline-any cline-neutral">&nbsp;</span>
519<span class="cline-any cline-yes">1790x</span>
520<span class="cline-any cline-neutral">&nbsp;</span>
521<span class="cline-any cline-neutral">&nbsp;</span>
522<span class="cline-any cline-neutral">&nbsp;</span>
523<span class="cline-any cline-yes">1790x</span>
524<span class="cline-any cline-yes">1790x</span>
525<span class="cline-any cline-yes">3x</span>
526<span class="cline-any cline-yes">3x</span>
527<span class="cline-any cline-neutral">&nbsp;</span>
528<span class="cline-any cline-yes">3x</span>
529<span class="cline-any cline-yes">3x</span>
530<span class="cline-any cline-yes">3x</span>
531<span class="cline-any cline-yes">3x</span>
532<span class="cline-any cline-yes">3x</span>
533<span class="cline-any cline-yes">3x</span>
534<span class="cline-any cline-neutral">&nbsp;</span>
535<span class="cline-any cline-neutral">&nbsp;</span>
536<span class="cline-any cline-neutral">&nbsp;</span>
537<span class="cline-any cline-yes">1790x</span>
538<span class="cline-any cline-yes">1x</span>
539<span class="cline-any cline-yes">5x</span>
540<span class="cline-any cline-no">&nbsp;</span>
541<span class="cline-any cline-neutral">&nbsp;</span>
542<span class="cline-any cline-neutral">&nbsp;</span>
543<span class="cline-any cline-yes">5x</span>
544<span class="cline-any cline-yes">5x</span>
545<span class="cline-any cline-yes">5x</span>
546<span class="cline-any cline-neutral">&nbsp;</span>
547<span class="cline-any cline-neutral">&nbsp;</span>
548<span class="cline-any cline-neutral">&nbsp;</span>
549<span class="cline-any cline-neutral">&nbsp;</span>
550<span class="cline-any cline-yes">1790x</span>
551<span class="cline-any cline-neutral">&nbsp;</span>
552<span class="cline-any cline-yes">58x</span>
553<span class="cline-any cline-yes">1x</span>
554<span class="cline-any cline-yes">1x</span>
555<span class="cline-any cline-yes">1x</span>
556<span class="cline-any cline-neutral">&nbsp;</span>
557<span class="cline-any cline-neutral">&nbsp;</span>
558<span class="cline-any cline-neutral">&nbsp;</span>
559<span class="cline-any cline-yes">57x</span>
560<span class="cline-any cline-yes">4x</span>
561<span class="cline-any cline-neutral">&nbsp;</span>
562<span class="cline-any cline-yes">2x</span>
563<span class="cline-any cline-yes">2x</span>
564<span class="cline-any cline-neutral">&nbsp;</span>
565<span class="cline-any cline-yes">2x</span>
566<span class="cline-any cline-yes">2x</span>
567<span class="cline-any cline-yes">2x</span>
568<span class="cline-any cline-yes">2x</span>
569<span class="cline-any cline-neutral">&nbsp;</span>
570<span class="cline-any cline-neutral">&nbsp;</span>
571<span class="cline-any cline-yes">53x</span>
572<span class="cline-any cline-yes">3x</span>
573<span class="cline-any cline-yes">3x</span>
574<span class="cline-any cline-neutral">&nbsp;</span>
575<span class="cline-any cline-neutral">&nbsp;</span>
576<span class="cline-any cline-yes">50x</span>
577<span class="cline-any cline-yes">50x</span>
578<span class="cline-any cline-no">&nbsp;</span>
579<span class="cline-any cline-no">&nbsp;</span>
580<span class="cline-any cline-no">&nbsp;</span>
581<span class="cline-any cline-neutral">&nbsp;</span>
582<span class="cline-any cline-neutral">&nbsp;</span>
583<span class="cline-any cline-yes">50x</span>
584<span class="cline-any cline-yes">49x</span>
585<span class="cline-any cline-yes">49x</span>
586<span class="cline-any cline-yes">49x</span>
587<span class="cline-any cline-neutral">&nbsp;</span>
588<span class="cline-any cline-yes">50x</span>
589<span class="cline-any cline-neutral">&nbsp;</span>
590<span class="cline-any cline-neutral">&nbsp;</span>
591<span class="cline-any cline-neutral">&nbsp;</span>
592<span class="cline-any cline-yes">49x</span>
593<span class="cline-any cline-yes">49x</span>
594<span class="cline-any cline-yes">163x</span>
595<span class="cline-any cline-neutral">&nbsp;</span>
596<span class="cline-any cline-yes">163x</span>
597<span class="cline-any cline-yes">163x</span>
598<span class="cline-any cline-neutral">&nbsp;</span>
599<span class="cline-any cline-yes">163x</span>
600<span class="cline-any cline-yes">223x</span>
601<span class="cline-any cline-yes">8x</span>
602<span class="cline-any cline-yes">4x</span>
603<span class="cline-any cline-neutral">&nbsp;</span>
604<span class="cline-any cline-yes">8x</span>
605<span class="cline-any cline-neutral">&nbsp;</span>
606<span class="cline-any cline-neutral">&nbsp;</span>
607<span class="cline-any cline-yes">223x</span>
608<span class="cline-any cline-yes">223x</span>
609<span class="cline-any cline-neutral">&nbsp;</span>
610<span class="cline-any cline-neutral">&nbsp;</span>
611<span class="cline-any cline-yes">223x</span>
612<span class="cline-any cline-yes">166670x</span>
613<span class="cline-any cline-yes">166670x</span>
614<span class="cline-any cline-yes">147x</span>
615<span class="cline-any cline-yes">147x</span>
616<span class="cline-any cline-neutral">&nbsp;</span>
617<span class="cline-any cline-yes">166523x</span>
618<span class="cline-any cline-yes">8x</span>
619<span class="cline-any cline-yes">8x</span>
620<span class="cline-any cline-yes">166515x</span>
621<span class="cline-any cline-yes">97x</span>
622<span class="cline-any cline-neutral">&nbsp;</span>
623<span class="cline-any cline-neutral">&nbsp;</span>
624<span class="cline-any cline-neutral">&nbsp;</span>
625<span class="cline-any cline-yes">223x</span>
626<span class="cline-any cline-yes">118x</span>
627<span class="cline-any cline-neutral">&nbsp;</span>
628<span class="cline-any cline-neutral">&nbsp;</span>
629<span class="cline-any cline-yes">105x</span>
630<span class="cline-any cline-neutral">&nbsp;</span>
631<span class="cline-any cline-yes">105x</span>
632<span class="cline-any cline-neutral">&nbsp;</span>
633<span class="cline-any cline-neutral">&nbsp;</span>
634<span class="cline-any cline-yes">163x</span>
635<span class="cline-any cline-yes">49x</span>
636<span class="cline-any cline-yes">114x</span>
637<span class="cline-any cline-no">&nbsp;</span>
638<span class="cline-any cline-neutral">&nbsp;</span>
639<span class="cline-any cline-neutral">&nbsp;</span>
640<span class="cline-any cline-neutral">&nbsp;</span>
641<span class="cline-any cline-neutral">&nbsp;</span>
642<span class="cline-any cline-yes">1790x</span>
643<span class="cline-any cline-yes">1790x</span>
644<span class="cline-any cline-yes">1790x</span>
645<span class="cline-any cline-neutral">&nbsp;</span>
646<span class="cline-any cline-neutral">&nbsp;</span>
647<span class="cline-any cline-yes">54x</span>
648<span class="cline-any cline-neutral">&nbsp;</span>
649<span class="cline-any cline-neutral">&nbsp;</span>
650<span class="cline-any cline-yes">1870x</span>
651<span class="cline-any cline-yes">385x</span>
652<span class="cline-any cline-neutral">&nbsp;</span>
653<span class="cline-any cline-neutral">&nbsp;</span>
654<span class="cline-any cline-neutral">&nbsp;</span>
655<span class="cline-any cline-yes">54x</span>
656<span class="cline-any cline-yes">9x</span>
657<span class="cline-any cline-yes">9x</span>
658<span class="cline-any cline-yes">9x</span>
659<span class="cline-any cline-yes">9x</span>
660<span class="cline-any cline-neutral">&nbsp;</span>
661<span class="cline-any cline-neutral">&nbsp;</span>
662<span class="cline-any cline-neutral">&nbsp;</span>
663<span class="cline-any cline-yes">105x</span>
664<span class="cline-any cline-yes">48x</span>
665<span class="cline-any cline-yes">41x</span>
666<span class="cline-any cline-yes">41x</span>
667<span class="cline-any cline-neutral">&nbsp;</span>
668<span class="cline-any cline-neutral">&nbsp;</span>
669<span class="cline-any cline-neutral">&nbsp;</span>
670<span class="cline-any cline-neutral">&nbsp;</span>
671<span class="cline-any cline-yes">41x</span>
672<span class="cline-any cline-neutral">&nbsp;</span>
673<span class="cline-any cline-yes">48x</span>
674<span class="cline-any cline-yes">57x</span>
675<span class="cline-any cline-yes">55x</span>
676<span class="cline-any cline-yes">55x</span>
677<span class="cline-any cline-yes">55x</span>
678<span class="cline-any cline-neutral">&nbsp;</span>
679<span class="cline-any cline-yes">55x</span>
680<span class="cline-any cline-no">&nbsp;</span>
681<span class="cline-any cline-yes">55x</span>
682<span class="cline-any cline-yes">5x</span>
683<span class="cline-any cline-neutral">&nbsp;</span>
684<span class="cline-any cline-yes">50x</span>
685<span class="cline-any cline-neutral">&nbsp;</span>
686<span class="cline-any cline-yes">55x</span>
687<span class="cline-any cline-neutral">&nbsp;</span>
688<span class="cline-any cline-yes">55x</span>
689<span class="cline-any cline-yes">55x</span>
690<span class="cline-any cline-neutral">&nbsp;</span>
691<span class="cline-any cline-yes">55x</span>
692<span class="cline-any cline-yes">46x</span>
693<span class="cline-any cline-yes">9x</span>
694<span class="cline-any cline-yes">4x</span>
695<span class="cline-any cline-yes">5x</span>
696<span class="cline-any cline-yes">5x</span>
697<span class="cline-any cline-no">&nbsp;</span>
698<span class="cline-any cline-no">&nbsp;</span>
699<span class="cline-any cline-no">&nbsp;</span>
700<span class="cline-any cline-no">&nbsp;</span>
701<span class="cline-any cline-neutral">&nbsp;</span>
702<span class="cline-any cline-neutral">&nbsp;</span>
703<span class="cline-any cline-neutral">&nbsp;</span>
704<span class="cline-any cline-neutral">&nbsp;</span>
705<span class="cline-any cline-neutral">&nbsp;</span>
706<span class="cline-any cline-neutral">&nbsp;</span>
707<span class="cline-any cline-yes">1x</span>
708<span class="cline-any cline-neutral">&nbsp;</span>
709<span class="cline-any cline-yes">1x</span>
710<span class="cline-any cline-yes">1x</span>
711<span class="cline-any cline-neutral">&nbsp;</span>
712<span class="cline-any cline-yes">1x</span>
713<span class="cline-any cline-yes">3x</span>
714<span class="cline-any cline-neutral">&nbsp;</span>
715<span class="cline-any cline-neutral">&nbsp;</span>
716<span class="cline-any cline-neutral">&nbsp;</span>
717<span class="cline-any cline-neutral">&nbsp;</span>
718<span class="cline-any cline-neutral">&nbsp;</span>
719<span class="cline-any cline-neutral">&nbsp;</span>
720<span class="cline-any cline-neutral">&nbsp;</span>
721<span class="cline-any cline-no">&nbsp;</span>
722<span class="cline-any cline-no">&nbsp;</span>
723<span class="cline-any cline-neutral">&nbsp;</span>
724<span class="cline-any cline-neutral">&nbsp;</span>
725<span class="cline-any cline-neutral">&nbsp;</span>
726<span class="cline-any cline-neutral">&nbsp;</span>
727<span class="cline-any cline-neutral">&nbsp;</span>
728<span class="cline-any cline-neutral">&nbsp;</span>
729<span class="cline-any cline-neutral">&nbsp;</span>
730<span class="cline-any cline-neutral">&nbsp;</span>
731<span class="cline-any cline-neutral">&nbsp;</span>
732<span class="cline-any cline-neutral">&nbsp;</span>
733<span class="cline-any cline-yes">59x</span>
734<span class="cline-any cline-yes">59x</span>
735<span class="cline-any cline-neutral">&nbsp;</span>
736<span class="cline-any cline-neutral">&nbsp;</span>
737<span class="cline-any cline-neutral">&nbsp;</span>
738<span class="cline-any cline-neutral">&nbsp;</span>
739<span class="cline-any cline-neutral">&nbsp;</span>
740<span class="cline-any cline-neutral">&nbsp;</span>
741<span class="cline-any cline-neutral">&nbsp;</span>
742<span class="cline-any cline-yes">1x</span>
743<span class="cline-any cline-yes">1x</span>
744<span class="cline-any cline-yes">1x</span>
745<span class="cline-any cline-neutral">&nbsp;</span>
746<span class="cline-any cline-yes">1x</span>
747<span class="cline-any cline-yes">1x</span>
748<span class="cline-any cline-yes">1x</span>
749<span class="cline-any cline-neutral">&nbsp;</span>
750<span class="cline-any cline-neutral">&nbsp;</span>
751<span class="cline-any cline-neutral">&nbsp;</span>
752<span class="cline-any cline-neutral">&nbsp;</span>
753<span class="cline-any cline-neutral">&nbsp;</span>
754<span class="cline-any cline-neutral">&nbsp;</span>
755<span class="cline-any cline-neutral">&nbsp;</span>
756<span class="cline-any cline-yes">1x</span>
757<span class="cline-any cline-yes">9x</span>
758<span class="cline-any cline-neutral">&nbsp;</span>
759<span class="cline-any cline-neutral">&nbsp;</span>
760<span class="cline-any cline-neutral">&nbsp;</span>
761<span class="cline-any cline-neutral">&nbsp;</span>
762<span class="cline-any cline-neutral">&nbsp;</span>
763<span class="cline-any cline-neutral">&nbsp;</span>
764<span class="cline-any cline-neutral">&nbsp;</span>
765<span class="cline-any cline-neutral">&nbsp;</span>
766<span class="cline-any cline-neutral">&nbsp;</span>
767<span class="cline-any cline-neutral">&nbsp;</span>
768<span class="cline-any cline-neutral">&nbsp;</span>
769<span class="cline-any cline-yes">1x</span>
770<span class="cline-any cline-yes">64x</span>
771<span class="cline-any cline-neutral">&nbsp;</span>
772<span class="cline-any cline-yes">62x</span>
773<span class="cline-any cline-yes">62x</span>
774<span class="cline-any cline-neutral">&nbsp;</span>
775<span class="cline-any cline-neutral">&nbsp;</span>
776<span class="cline-any cline-neutral">&nbsp;</span>
777<span class="cline-any cline-neutral">&nbsp;</span>
778<span class="cline-any cline-neutral">&nbsp;</span>
779<span class="cline-any cline-neutral">&nbsp;</span>
780<span class="cline-any cline-neutral">&nbsp;</span>
781<span class="cline-any cline-neutral">&nbsp;</span>
782<span class="cline-any cline-neutral">&nbsp;</span>
783<span class="cline-any cline-neutral">&nbsp;</span>
784<span class="cline-any cline-neutral">&nbsp;</span>
785<span class="cline-any cline-neutral">&nbsp;</span>
786<span class="cline-any cline-yes">1x</span>
787<span class="cline-any cline-yes">1x</span>
788<span class="cline-any cline-yes">1x</span>
789<span class="cline-any cline-yes">1x</span>
790<span class="cline-any cline-neutral">&nbsp;</span>
791<span class="cline-any cline-neutral">&nbsp;</span>
792<span class="cline-any cline-neutral">&nbsp;</span>
793<span class="cline-any cline-neutral">&nbsp;</span>
794<span class="cline-any cline-neutral">&nbsp;</span>
795<span class="cline-any cline-neutral">&nbsp;</span>
796<span class="cline-any cline-neutral">&nbsp;</span>
797<span class="cline-any cline-neutral">&nbsp;</span>
798<span class="cline-any cline-neutral">&nbsp;</span>
799<span class="cline-any cline-neutral">&nbsp;</span>
800<span class="cline-any cline-yes">1829x</span>
801<span class="cline-any cline-yes">1829x</span>
802<span class="cline-any cline-yes">6x</span>
803<span class="cline-any cline-yes">6x</span>
804<span class="cline-any cline-yes">6x</span>
805<span class="cline-any cline-neutral">&nbsp;</span>
806<span class="cline-any cline-neutral">&nbsp;</span>
807<span class="cline-any cline-neutral">&nbsp;</span>
808<span class="cline-any cline-neutral">&nbsp;</span>
809<span class="cline-any cline-neutral">&nbsp;</span>
810<span class="cline-any cline-neutral">&nbsp;</span>
811<span class="cline-any cline-neutral">&nbsp;</span>
812<span class="cline-any cline-neutral">&nbsp;</span>
813<span class="cline-any cline-neutral">&nbsp;</span>
814<span class="cline-any cline-neutral">&nbsp;</span>
815<span class="cline-any cline-neutral">&nbsp;</span>
816<span class="cline-any cline-neutral">&nbsp;</span>
817<span class="cline-any cline-yes">41x</span>
818<span class="cline-any cline-yes">41x</span>
819<span class="cline-any cline-yes">123x</span>
820<span class="cline-any cline-yes">123x</span>
821<span class="cline-any cline-neutral">&nbsp;</span>
822<span class="cline-any cline-neutral">&nbsp;</span>
823<span class="cline-any cline-neutral">&nbsp;</span>
824<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">var original = require('original')
825var parse = require('url').parse
826var events = require('events')
827var https = require('https')
828var http = require('http')
829var util = require('util')
830&nbsp;
831var httpsOptions = [
832 'pfx', 'key', 'passphrase', 'cert', 'ca', 'ciphers',
833 'rejectUnauthorized', 'secureProtocol', 'servername'
834]
835&nbsp;
836/**
837 * Creates a new EventSource object
838 *
839 * @param {String} url the URL to which to connect
840 * @param {Object} [eventSourceInitDict] extra init params. See README for details.
841 * @api public
842 **/
843function EventSource (url, eventSourceInitDict) {
844 var readyState = EventSource.CONNECTING
845 Object.defineProperty(this, 'readyState', {
846 get: function () {
847 return readyState
848 }
849 })
850&nbsp;
851 Object.defineProperty(this, 'url', {
852 get: function () {
853 return url
854 }
855 })
856&nbsp;
857 var self = this
858 self.reconnectInterval = 1000
859&nbsp;
860 function onConnectionClosed () {
861 if (readyState === EventSource.CLOSED) return
862 readyState = EventSource.CONNECTING
863 _emit('error', new Event('error'))
864&nbsp;
865 // The url may have been changed by a temporary
866 // redirect. If that's the case, revert it now.
867 if (reconnectUrl) {
868 url = reconnectUrl
869 reconnectUrl = null
870 }
871 setTimeout(function () {
872 if (readyState !== EventSource.CONNECTING) {
873 return
874 }
875 connect()
876 }, self.reconnectInterval)
877 }
878&nbsp;
879 var req
880 var lastEventId = ''
881 if (eventSourceInitDict &amp;&amp; eventSourceInitDict.headers &amp;&amp; eventSourceInitDict.headers['Last-Event-ID']) {
882 lastEventId = eventSourceInitDict.headers['Last-Event-ID']
883 delete eventSourceInitDict.headers['Last-Event-ID']
884 }
885&nbsp;
886 var discardTrailingNewline = false
887 var data = ''
888 var eventName = ''
889&nbsp;
890 var reconnectUrl = null
891&nbsp;
892 function connect () {
893 var options = parse(url)
894 var isSecure = options.protocol === 'https:'
895 options.headers = { 'Cache-Control': 'no-cache', 'Accept': 'text/event-stream' }
896 if (lastEventId) options.headers['Last-Event-ID'] = lastEventId
897 if (eventSourceInitDict &amp;&amp; eventSourceInitDict.headers) {
898 for (var i in eventSourceInitDict.headers) {
899 var header = eventSourceInitDict.headers[i]
900 if (header) {
901 options.headers[i] = header
902 }
903 }
904 }
905&nbsp;
906 // Legacy: this should be specified as `eventSourceInitDict.https.rejectUnauthorized`,
907 // but for now exists as a backwards-compatibility layer
908 options.rejectUnauthorized = !(eventSourceInitDict &amp;&amp; !eventSourceInitDict.rejectUnauthorized)
909&nbsp;
910 // If specify http proxy, make the request to sent to the proxy server,
911 // and include the original url in path and Host headers
912 var useProxy = eventSourceInitDict &amp;&amp; eventSourceInitDict.proxy
913 if (useProxy) {
914 var proxy = parse(eventSourceInitDict.proxy)
915 isSecure = proxy.protocol === 'https:'
916&nbsp;
917 options.protocol = isSecure ? 'https:' : 'http:'
918 options.path = url
919 options.headers.Host = options.host
920 options.hostname = proxy.hostname
921 options.host = proxy.host
922 options.port = proxy.port
923 }
924&nbsp;
925 // If https options are specified, merge them into the request options
926 if (eventSourceInitDict &amp;&amp; eventSourceInitDict.https) {
927 for (var optName in eventSourceInitDict.https) {
928 <span class="missing-if-branch" title="if path not taken" >I</span>if (httpsOptions.indexOf(optName) === -1) {
929<span class="cstat-no" title="statement not covered" > continue</span>
930 }
931&nbsp;
932 var option = eventSourceInitDict.https[optName]
933 <span class="missing-if-branch" title="else path not taken" >E</span>if (option !== undefined) {
934 options[optName] = option
935 }
936 }
937 }
938&nbsp;
939 req = (isSecure ? https : http).request(options, function (res) {
940 // Handle HTTP errors
941 if (res.statusCode === 500 || res.statusCode === 502 || res.statusCode === 503 || res.statusCode === 504) {
942 _emit('error', new Event('error', {status: res.statusCode}))
943 onConnectionClosed()
944 return
945 }
946&nbsp;
947 // Handle HTTP redirects
948 if (res.statusCode === 301 || res.statusCode === 307) {
949 if (!res.headers.location) {
950 // Server sent redirect response without Location header.
951 _emit('error', new Event('error', {status: res.statusCode}))
952 return
953 }
954 if (res.statusCode === 307) reconnectUrl = url
955 url = res.headers.location
956 process.nextTick(connect)
957 return
958 }
959&nbsp;
960 if (res.statusCode !== 200) {
961 _emit('error', new Event('error', {status: res.statusCode}))
962 return self.close()
963 }
964&nbsp;
965 readyState = EventSource.OPEN
966 res.on('close', <span class="fstat-no" title="function not covered" >fu</span>nction () {
967<span class="cstat-no" title="statement not covered" > res.removeAllListeners('close')</span>
968<span class="cstat-no" title="statement not covered" > res.removeAllListeners('end')</span>
969<span class="cstat-no" title="statement not covered" > onConnectionClosed()</span>
970 })
971&nbsp;
972 res.on('end', function () {
973 res.removeAllListeners('close')
974 res.removeAllListeners('end')
975 onConnectionClosed()
976 })
977 _emit('open', new Event('open'))
978&nbsp;
979 // text/event-stream parser adapted from webkit's
980 // Source/WebCore/page/EventSource.cpp
981 var buf = ''
982 res.on('data', function (chunk) {
983 buf += chunk
984&nbsp;
985 var pos = 0
986 var length = buf.length
987&nbsp;
988 while (pos &lt; length) {
989 if (discardTrailingNewline) {
990 if (buf[pos] === '\n') {
991 ++pos
992 }
993 discardTrailingNewline = false
994 }
995&nbsp;
996 var lineLength = -1
997 var fieldLength = -1
998 var c
999&nbsp;
1000 for (var i = pos; lineLength &lt; 0 &amp;&amp; i &lt; length; ++i) {
1001 c = buf[i]
1002 if (c === ':') {
1003 <span class="missing-if-branch" title="else path not taken" >E</span>if (fieldLength &lt; 0) {
1004 fieldLength = i - pos
1005 }
1006 } else if (c === '\r') {
1007 discardTrailingNewline = true
1008 lineLength = i - pos
1009 } else if (c === '\n') {
1010 lineLength = i - pos
1011 }
1012 }
1013&nbsp;
1014 if (lineLength &lt; 0) {
1015 break
1016 }
1017&nbsp;
1018 parseEventStreamLine(buf, pos, fieldLength, lineLength)
1019&nbsp;
1020 pos += lineLength + 1
1021 }
1022&nbsp;
1023 if (pos === length) {
1024 buf = ''
1025 } else <span class="missing-if-branch" title="if path not taken" >I</span>if (pos &gt; 0) {
1026<span class="cstat-no" title="statement not covered" > buf = buf.slice(pos)</span>
1027 }
1028 })
1029 })
1030&nbsp;
1031 req.on('error', onConnectionClosed)
1032 <span class="missing-if-branch" title="else path not taken" >E</span>if (req.setNoDelay) req.setNoDelay(true)
1033 req.end()
1034 }
1035&nbsp;
1036 connect()
1037&nbsp;
1038 function _emit () {
1039 if (self.listeners(arguments[0]).length &gt; 0) {
1040 self.emit.apply(self, arguments)
1041 }
1042 }
1043&nbsp;
1044 this._close = function () {
1045 <span class="missing-if-branch" title="if path not taken" >I</span>if (readyState === EventSource.CLOSED) <span class="cstat-no" title="statement not covered" >return</span>
1046 readyState = EventSource.CLOSED
1047 <span class="missing-if-branch" title="else path not taken" >E</span>if (req.abort) req.abort()
1048 <span class="missing-if-branch" title="if path not taken" >I</span>if (req.xhr &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >req.xhr.abort)</span> <span class="cstat-no" title="statement not covered" >req.xhr.abort()</span>
1049 }
1050&nbsp;
1051 function parseEventStreamLine (buf, pos, fieldLength, lineLength) {
1052 if (lineLength === 0) {
1053 if (data.length &gt; 0) {
1054 var type = eventName || 'message'
1055 _emit(type, new MessageEvent(type, {
1056 data: data.slice(0, -1), // remove trailing newline
1057 lastEventId: lastEventId,
1058 origin: original(url)
1059 }))
1060 data = ''
1061 }
1062 eventName = void 0
1063 } else if (fieldLength &gt; 0) {
1064 var noValue = fieldLength &lt; 0
1065 var step = 0
1066 var field = buf.slice(pos, pos + (noValue ? <span class="branch-0 cbranch-no" title="branch not covered" >lineLength </span>: fieldLength))
1067&nbsp;
1068 <span class="missing-if-branch" title="if path not taken" >I</span>if (noValue) {
1069<span class="cstat-no" title="statement not covered" > step = lineLength</span>
1070 } else if (buf[pos + fieldLength + 1] !== ' ') {
1071 step = fieldLength + 1
1072 } else {
1073 step = fieldLength + 2
1074 }
1075 pos += step
1076&nbsp;
1077 var valueLength = lineLength - step
1078 var value = buf.slice(pos, pos + valueLength)
1079&nbsp;
1080 if (field === 'data') {
1081 data += value + '\n'
1082 } else if (field === 'event') {
1083 eventName = value
1084 } else <span class="missing-if-branch" title="else path not taken" >E</span>if (field === 'id') {
1085 lastEventId = value
1086 } else <span class="cstat-no" title="statement not covered" >if (field === 'retry') {</span>
1087 var retry = <span class="cstat-no" title="statement not covered" >parseInt(value, 10)</span>
1088<span class="cstat-no" title="statement not covered" > if (!Number.isNaN(retry)) {</span>
1089<span class="cstat-no" title="statement not covered" > self.reconnectInterval = retry</span>
1090 }
1091 }
1092 }
1093 }
1094}
1095&nbsp;
1096module.exports = EventSource
1097&nbsp;
1098util.inherits(EventSource, events.EventEmitter)
1099EventSource.prototype.constructor = EventSource; // make stacktraces readable
1100&nbsp;
1101['open', 'error', 'message'].forEach(function (method) {
1102 Object.defineProperty(EventSource.prototype, 'on' + method, {
1103 /**
1104 * Returns the current listener
1105 *
1106 * @return {Mixed} the set function or undefined
1107 * @api private
1108 */
1109 get: function <span class="fstat-no" title="function not covered" >get </span>() {
1110 var listener = <span class="cstat-no" title="statement not covered" >this.listeners(method)[0]</span>
1111<span class="cstat-no" title="statement not covered" > return listener ? (listener._listener ? listener._listener : listener) : undefined</span>
1112 },
1113&nbsp;
1114 /**
1115 * Start listening for events
1116 *
1117 * @param {Function} listener the listener
1118 * @return {Mixed} the set function or undefined
1119 * @api private
1120 */
1121 set: function set (listener) {
1122 this.removeAllListeners(method)
1123 this.addEventListener(method, listener)
1124 }
1125 })
1126})
1127&nbsp;
1128/**
1129 * Ready states
1130 */
1131Object.defineProperty(EventSource, 'CONNECTING', {enumerable: true, value: 0})
1132Object.defineProperty(EventSource, 'OPEN', {enumerable: true, value: 1})
1133Object.defineProperty(EventSource, 'CLOSED', {enumerable: true, value: 2})
1134&nbsp;
1135EventSource.prototype.CONNECTING = 0
1136EventSource.prototype.OPEN = 1
1137EventSource.prototype.CLOSED = 2
1138&nbsp;
1139/**
1140 * Closes the connection, if one is made, and sets the readyState attribute to 2 (closed)
1141 *
1142 * @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/close
1143 * @api public
1144 */
1145EventSource.prototype.close = function () {
1146 this._close()
1147}
1148&nbsp;
1149/**
1150 * Emulates the W3C Browser based WebSocket interface using addEventListener.
1151 *
1152 * @param {String} type A string representing the event type to listen out for
1153 * @param {Function} listener callback
1154 * @see https://developer.mozilla.org/en/DOM/element.addEventListener
1155 * @see http://dev.w3.org/html5/websockets/#the-websocket-interface
1156 * @api public
1157 */
1158EventSource.prototype.addEventListener = function addEventListener (type, listener) {
1159 if (typeof listener === 'function') {
1160 // store a reference so we can return the original function again
1161 listener._listener = listener
1162 this.on(type, listener)
1163 }
1164}
1165&nbsp;
1166/**
1167 * Emulates the W3C Browser based WebSocket interface using removeEventListener.
1168 *
1169 * @param {String} type A string representing the event type to remove
1170 * @param {Function} listener callback
1171 * @see https://developer.mozilla.org/en/DOM/element.removeEventListener
1172 * @see http://dev.w3.org/html5/websockets/#the-websocket-interface
1173 * @api public
1174 */
1175EventSource.prototype.removeEventListener = function removeEventListener (type, listener) {
1176 <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof listener === 'function') {
1177 listener._listener = undefined
1178 this.removeListener(type, listener)
1179 }
1180}
1181&nbsp;
1182/**
1183 * W3C Event
1184 *
1185 * @see http://www.w3.org/TR/DOM-Level-3-Events/#interface-Event
1186 * @api private
1187 */
1188function Event (type, optionalProperties) {
1189 Object.defineProperty(this, 'type', { writable: false, value: type, enumerable: true })
1190 if (optionalProperties) {
1191 for (var f in optionalProperties) {
1192 <span class="missing-if-branch" title="else path not taken" >E</span>if (optionalProperties.hasOwnProperty(f)) {
1193 Object.defineProperty(this, f, { writable: false, value: optionalProperties[f], enumerable: true })
1194 }
1195 }
1196 }
1197}
1198&nbsp;
1199/**
1200 * W3C MessageEvent
1201 *
1202 * @see http://www.w3.org/TR/webmessaging/#event-definitions
1203 * @api private
1204 */
1205function MessageEvent (type, eventInitDict) {
1206 Object.defineProperty(this, 'type', { writable: false, value: type, enumerable: true })
1207 for (var f in eventInitDict) {
1208 <span class="missing-if-branch" title="else path not taken" >E</span>if (eventInitDict.hasOwnProperty(f)) {
1209 Object.defineProperty(this, f, { writable: false, value: eventInitDict[f], enumerable: true })
1210 }
1211 }
1212}
1213&nbsp;</pre></td></tr>
1214</table></pre>
1215<div class='push'></div><!-- for sticky footer -->
1216</div><!-- /wrapper -->
1217<div class='footer quiet pad2 space-top1 center small'>
1218 Code coverage
1219 generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Jun 19 2017 21:02:22 GMT+0200 (CEST)
1220</div>
1221</div>
1222<script src="prettify.js"></script>
1223<script>
1224window.onload = function () {
1225 if (typeof prettyPrint === 'function') {
1226 prettyPrint();
1227 }
1228};
1229</script>
1230<script src="sorter.js"></script>
1231</body>
1232</html>