postscribe 2.0.4 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.npmignore +1 -0
- package/LICENSE +2 -1
- package/README.md +17 -4
- package/dist/postscribe.js +493 -470
- package/dist/postscribe.js.map +1 -0
- package/dist/postscribe.max.js +493 -470
- package/dist/postscribe.min.js +2 -2
- package/package.json +37 -40
- package/bower.json +0 -20
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/base.css +0 -212
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/index.html +0 -97
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/prettify.css +0 -1
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/prettify.js +0 -1
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/sort-arrow-sprite.png +0 -0
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/sorter.js +0 -158
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/src/index.html +0 -123
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/src/postscribe.js.html +0 -666
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/src/utils.js.html +0 -453
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov-report/src/write-stream.js.html +0 -1896
- package/dist/test-reports/coverage/PhantomJS 2.1.1 (Linux 0.0.0)/lcov.info +0 -649
@@ -1,1896 +0,0 @@
|
|
1
|
-
<!doctype html>
|
2
|
-
<html lang="en">
|
3
|
-
<head>
|
4
|
-
<title>Code coverage report for src/write-stream.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> / <a href="index.html">src/</a> write-stream.js
|
20
|
-
</h1>
|
21
|
-
<div class='clearfix'>
|
22
|
-
<div class='fl pad1y space-right2'>
|
23
|
-
<span class="strong">95.74% </span>
|
24
|
-
<span class="quiet">Statements</span>
|
25
|
-
<span class='fraction'>225/235</span>
|
26
|
-
</div>
|
27
|
-
<div class='fl pad1y space-right2'>
|
28
|
-
<span class="strong">87.97% </span>
|
29
|
-
<span class="quiet">Branches</span>
|
30
|
-
<span class='fraction'>117/133</span>
|
31
|
-
</div>
|
32
|
-
<div class='fl pad1y space-right2'>
|
33
|
-
<span class="strong">97.3% </span>
|
34
|
-
<span class="quiet">Functions</span>
|
35
|
-
<span class='fraction'>36/37</span>
|
36
|
-
</div>
|
37
|
-
<div class='fl pad1y space-right2'>
|
38
|
-
<span class="strong">94.62% </span>
|
39
|
-
<span class="quiet">Lines</span>
|
40
|
-
<span class='fraction'>176/186</span>
|
41
|
-
</div>
|
42
|
-
<div class='fl pad1y'>
|
43
|
-
<span class="strong">8 statements, 8 branches</span>
|
44
|
-
<span class="quiet">Ignored</span>
|
45
|
-
</div>
|
46
|
-
</div>
|
47
|
-
</div>
|
48
|
-
<div class='status-line high'></div>
|
49
|
-
<pre><table class="coverage">
|
50
|
-
<tr><td class="line-count quiet">1
|
51
|
-
2
|
52
|
-
3
|
53
|
-
4
|
54
|
-
5
|
55
|
-
6
|
56
|
-
7
|
57
|
-
8
|
58
|
-
9
|
59
|
-
10
|
60
|
-
11
|
61
|
-
12
|
62
|
-
13
|
63
|
-
14
|
64
|
-
15
|
65
|
-
16
|
66
|
-
17
|
67
|
-
18
|
68
|
-
19
|
69
|
-
20
|
70
|
-
21
|
71
|
-
22
|
72
|
-
23
|
73
|
-
24
|
74
|
-
25
|
75
|
-
26
|
76
|
-
27
|
77
|
-
28
|
78
|
-
29
|
79
|
-
30
|
80
|
-
31
|
81
|
-
32
|
82
|
-
33
|
83
|
-
34
|
84
|
-
35
|
85
|
-
36
|
86
|
-
37
|
87
|
-
38
|
88
|
-
39
|
89
|
-
40
|
90
|
-
41
|
91
|
-
42
|
92
|
-
43
|
93
|
-
44
|
94
|
-
45
|
95
|
-
46
|
96
|
-
47
|
97
|
-
48
|
98
|
-
49
|
99
|
-
50
|
100
|
-
51
|
101
|
-
52
|
102
|
-
53
|
103
|
-
54
|
104
|
-
55
|
105
|
-
56
|
106
|
-
57
|
107
|
-
58
|
108
|
-
59
|
109
|
-
60
|
110
|
-
61
|
111
|
-
62
|
112
|
-
63
|
113
|
-
64
|
114
|
-
65
|
115
|
-
66
|
116
|
-
67
|
117
|
-
68
|
118
|
-
69
|
119
|
-
70
|
120
|
-
71
|
121
|
-
72
|
122
|
-
73
|
123
|
-
74
|
124
|
-
75
|
125
|
-
76
|
126
|
-
77
|
127
|
-
78
|
128
|
-
79
|
129
|
-
80
|
130
|
-
81
|
131
|
-
82
|
132
|
-
83
|
133
|
-
84
|
134
|
-
85
|
135
|
-
86
|
136
|
-
87
|
137
|
-
88
|
138
|
-
89
|
139
|
-
90
|
140
|
-
91
|
141
|
-
92
|
142
|
-
93
|
143
|
-
94
|
144
|
-
95
|
145
|
-
96
|
146
|
-
97
|
147
|
-
98
|
148
|
-
99
|
149
|
-
100
|
150
|
-
101
|
151
|
-
102
|
152
|
-
103
|
153
|
-
104
|
154
|
-
105
|
155
|
-
106
|
156
|
-
107
|
157
|
-
108
|
158
|
-
109
|
159
|
-
110
|
160
|
-
111
|
161
|
-
112
|
162
|
-
113
|
163
|
-
114
|
164
|
-
115
|
165
|
-
116
|
166
|
-
117
|
167
|
-
118
|
168
|
-
119
|
169
|
-
120
|
170
|
-
121
|
171
|
-
122
|
172
|
-
123
|
173
|
-
124
|
174
|
-
125
|
175
|
-
126
|
176
|
-
127
|
177
|
-
128
|
178
|
-
129
|
179
|
-
130
|
180
|
-
131
|
181
|
-
132
|
182
|
-
133
|
183
|
-
134
|
184
|
-
135
|
185
|
-
136
|
186
|
-
137
|
187
|
-
138
|
188
|
-
139
|
189
|
-
140
|
190
|
-
141
|
191
|
-
142
|
192
|
-
143
|
193
|
-
144
|
194
|
-
145
|
195
|
-
146
|
196
|
-
147
|
197
|
-
148
|
198
|
-
149
|
199
|
-
150
|
200
|
-
151
|
201
|
-
152
|
202
|
-
153
|
203
|
-
154
|
204
|
-
155
|
205
|
-
156
|
206
|
-
157
|
207
|
-
158
|
208
|
-
159
|
209
|
-
160
|
210
|
-
161
|
211
|
-
162
|
212
|
-
163
|
213
|
-
164
|
214
|
-
165
|
215
|
-
166
|
216
|
-
167
|
217
|
-
168
|
218
|
-
169
|
219
|
-
170
|
220
|
-
171
|
221
|
-
172
|
222
|
-
173
|
223
|
-
174
|
224
|
-
175
|
225
|
-
176
|
226
|
-
177
|
227
|
-
178
|
228
|
-
179
|
229
|
-
180
|
230
|
-
181
|
231
|
-
182
|
232
|
-
183
|
233
|
-
184
|
234
|
-
185
|
235
|
-
186
|
236
|
-
187
|
237
|
-
188
|
238
|
-
189
|
239
|
-
190
|
240
|
-
191
|
241
|
-
192
|
242
|
-
193
|
243
|
-
194
|
244
|
-
195
|
245
|
-
196
|
246
|
-
197
|
247
|
-
198
|
248
|
-
199
|
249
|
-
200
|
250
|
-
201
|
251
|
-
202
|
252
|
-
203
|
253
|
-
204
|
254
|
-
205
|
255
|
-
206
|
256
|
-
207
|
257
|
-
208
|
258
|
-
209
|
259
|
-
210
|
260
|
-
211
|
261
|
-
212
|
262
|
-
213
|
263
|
-
214
|
264
|
-
215
|
265
|
-
216
|
266
|
-
217
|
267
|
-
218
|
268
|
-
219
|
269
|
-
220
|
270
|
-
221
|
271
|
-
222
|
272
|
-
223
|
273
|
-
224
|
274
|
-
225
|
275
|
-
226
|
276
|
-
227
|
277
|
-
228
|
278
|
-
229
|
279
|
-
230
|
280
|
-
231
|
281
|
-
232
|
282
|
-
233
|
283
|
-
234
|
284
|
-
235
|
285
|
-
236
|
286
|
-
237
|
287
|
-
238
|
288
|
-
239
|
289
|
-
240
|
290
|
-
241
|
291
|
-
242
|
292
|
-
243
|
293
|
-
244
|
294
|
-
245
|
295
|
-
246
|
296
|
-
247
|
297
|
-
248
|
298
|
-
249
|
299
|
-
250
|
300
|
-
251
|
301
|
-
252
|
302
|
-
253
|
303
|
-
254
|
304
|
-
255
|
305
|
-
256
|
306
|
-
257
|
307
|
-
258
|
308
|
-
259
|
309
|
-
260
|
310
|
-
261
|
311
|
-
262
|
312
|
-
263
|
313
|
-
264
|
314
|
-
265
|
315
|
-
266
|
316
|
-
267
|
317
|
-
268
|
318
|
-
269
|
319
|
-
270
|
320
|
-
271
|
321
|
-
272
|
322
|
-
273
|
323
|
-
274
|
324
|
-
275
|
325
|
-
276
|
326
|
-
277
|
327
|
-
278
|
328
|
-
279
|
329
|
-
280
|
330
|
-
281
|
331
|
-
282
|
332
|
-
283
|
333
|
-
284
|
334
|
-
285
|
335
|
-
286
|
336
|
-
287
|
337
|
-
288
|
338
|
-
289
|
339
|
-
290
|
340
|
-
291
|
341
|
-
292
|
342
|
-
293
|
343
|
-
294
|
344
|
-
295
|
345
|
-
296
|
346
|
-
297
|
347
|
-
298
|
348
|
-
299
|
349
|
-
300
|
350
|
-
301
|
351
|
-
302
|
352
|
-
303
|
353
|
-
304
|
354
|
-
305
|
355
|
-
306
|
356
|
-
307
|
357
|
-
308
|
358
|
-
309
|
359
|
-
310
|
360
|
-
311
|
361
|
-
312
|
362
|
-
313
|
363
|
-
314
|
364
|
-
315
|
365
|
-
316
|
366
|
-
317
|
367
|
-
318
|
368
|
-
319
|
369
|
-
320
|
370
|
-
321
|
371
|
-
322
|
372
|
-
323
|
373
|
-
324
|
374
|
-
325
|
375
|
-
326
|
376
|
-
327
|
377
|
-
328
|
378
|
-
329
|
379
|
-
330
|
380
|
-
331
|
381
|
-
332
|
382
|
-
333
|
383
|
-
334
|
384
|
-
335
|
385
|
-
336
|
386
|
-
337
|
387
|
-
338
|
388
|
-
339
|
389
|
-
340
|
390
|
-
341
|
391
|
-
342
|
392
|
-
343
|
393
|
-
344
|
394
|
-
345
|
395
|
-
346
|
396
|
-
347
|
397
|
-
348
|
398
|
-
349
|
399
|
-
350
|
400
|
-
351
|
401
|
-
352
|
402
|
-
353
|
403
|
-
354
|
404
|
-
355
|
405
|
-
356
|
406
|
-
357
|
407
|
-
358
|
408
|
-
359
|
409
|
-
360
|
410
|
-
361
|
411
|
-
362
|
412
|
-
363
|
413
|
-
364
|
414
|
-
365
|
415
|
-
366
|
416
|
-
367
|
417
|
-
368
|
418
|
-
369
|
419
|
-
370
|
420
|
-
371
|
421
|
-
372
|
422
|
-
373
|
423
|
-
374
|
424
|
-
375
|
425
|
-
376
|
426
|
-
377
|
427
|
-
378
|
428
|
-
379
|
429
|
-
380
|
430
|
-
381
|
431
|
-
382
|
432
|
-
383
|
433
|
-
384
|
434
|
-
385
|
435
|
-
386
|
436
|
-
387
|
437
|
-
388
|
438
|
-
389
|
439
|
-
390
|
440
|
-
391
|
441
|
-
392
|
442
|
-
393
|
443
|
-
394
|
444
|
-
395
|
445
|
-
396
|
446
|
-
397
|
447
|
-
398
|
448
|
-
399
|
449
|
-
400
|
450
|
-
401
|
451
|
-
402
|
452
|
-
403
|
453
|
-
404
|
454
|
-
405
|
455
|
-
406
|
456
|
-
407
|
457
|
-
408
|
458
|
-
409
|
459
|
-
410
|
460
|
-
411
|
461
|
-
412
|
462
|
-
413
|
463
|
-
414
|
464
|
-
415
|
465
|
-
416
|
466
|
-
417
|
467
|
-
418
|
468
|
-
419
|
469
|
-
420
|
470
|
-
421
|
471
|
-
422
|
472
|
-
423
|
473
|
-
424
|
474
|
-
425
|
475
|
-
426
|
476
|
-
427
|
477
|
-
428
|
478
|
-
429
|
479
|
-
430
|
480
|
-
431
|
481
|
-
432
|
482
|
-
433
|
483
|
-
434
|
484
|
-
435
|
485
|
-
436
|
486
|
-
437
|
487
|
-
438
|
488
|
-
439
|
489
|
-
440
|
490
|
-
441
|
491
|
-
442
|
492
|
-
443
|
493
|
-
444
|
494
|
-
445
|
495
|
-
446
|
496
|
-
447
|
497
|
-
448
|
498
|
-
449
|
499
|
-
450
|
500
|
-
451
|
501
|
-
452
|
502
|
-
453
|
503
|
-
454
|
504
|
-
455
|
505
|
-
456
|
506
|
-
457
|
507
|
-
458
|
508
|
-
459
|
509
|
-
460
|
510
|
-
461
|
511
|
-
462
|
512
|
-
463
|
513
|
-
464
|
514
|
-
465
|
515
|
-
466
|
516
|
-
467
|
517
|
-
468
|
518
|
-
469
|
519
|
-
470
|
520
|
-
471
|
521
|
-
472
|
522
|
-
473
|
523
|
-
474
|
524
|
-
475
|
525
|
-
476
|
526
|
-
477
|
527
|
-
478
|
528
|
-
479
|
529
|
-
480
|
530
|
-
481
|
531
|
-
482
|
532
|
-
483
|
533
|
-
484
|
534
|
-
485
|
535
|
-
486
|
536
|
-
487
|
537
|
-
488
|
538
|
-
489
|
539
|
-
490
|
540
|
-
491
|
541
|
-
492
|
542
|
-
493
|
543
|
-
494
|
544
|
-
495
|
545
|
-
496
|
546
|
-
497
|
547
|
-
498
|
548
|
-
499
|
549
|
-
500
|
550
|
-
501
|
551
|
-
502
|
552
|
-
503
|
553
|
-
504
|
554
|
-
505
|
555
|
-
506
|
556
|
-
507
|
557
|
-
508
|
558
|
-
509
|
559
|
-
510
|
560
|
-
511
|
561
|
-
512
|
562
|
-
513
|
563
|
-
514
|
564
|
-
515
|
565
|
-
516
|
566
|
-
517
|
567
|
-
518
|
568
|
-
519
|
569
|
-
520
|
570
|
-
521
|
571
|
-
522
|
572
|
-
523
|
573
|
-
524
|
574
|
-
525
|
575
|
-
526
|
576
|
-
527
|
577
|
-
528
|
578
|
-
529
|
579
|
-
530
|
580
|
-
531
|
581
|
-
532
|
582
|
-
533
|
583
|
-
534
|
584
|
-
535
|
585
|
-
536
|
586
|
-
537
|
587
|
-
538
|
588
|
-
539
|
589
|
-
540
|
590
|
-
541
|
591
|
-
542
|
592
|
-
543
|
593
|
-
544
|
594
|
-
545
|
595
|
-
546
|
596
|
-
547
|
597
|
-
548
|
598
|
-
549
|
599
|
-
550
|
600
|
-
551
|
601
|
-
552
|
602
|
-
553
|
603
|
-
554
|
604
|
-
555
|
605
|
-
556
|
606
|
-
557
|
607
|
-
558
|
608
|
-
559
|
609
|
-
560
|
610
|
-
561
|
611
|
-
562
|
612
|
-
563
|
613
|
-
564
|
614
|
-
565
|
615
|
-
566
|
616
|
-
567
|
617
|
-
568
|
618
|
-
569
|
619
|
-
570
|
620
|
-
571
|
621
|
-
572
|
622
|
-
573
|
623
|
-
574
|
624
|
-
575
|
625
|
-
576
|
626
|
-
577
|
627
|
-
578
|
628
|
-
579
|
629
|
-
580
|
630
|
-
581
|
631
|
-
582
|
632
|
-
583
|
633
|
-
584
|
634
|
-
585
|
635
|
-
586
|
636
|
-
587
|
637
|
-
588
|
638
|
-
589
|
639
|
-
590
|
640
|
-
591
|
641
|
-
592
|
642
|
-
593
|
643
|
-
594
|
644
|
-
595
|
645
|
-
596
|
646
|
-
597
|
647
|
-
598
|
648
|
-
599
|
649
|
-
600
|
650
|
-
601
|
651
|
-
602
|
652
|
-
603
|
653
|
-
604
|
654
|
-
605
|
655
|
-
606
|
656
|
-
607
|
657
|
-
608
|
658
|
-
609
|
659
|
-
610</td><td class="line-coverage quiet"><span class="cline-any cline-yes">8×</span>
|
660
|
-
<span class="cline-any cline-yes">8×</span>
|
661
|
-
<span class="cline-any cline-neutral"> </span>
|
662
|
-
<span class="cline-any cline-neutral"> </span>
|
663
|
-
<span class="cline-any cline-neutral"> </span>
|
664
|
-
<span class="cline-any cline-neutral"> </span>
|
665
|
-
<span class="cline-any cline-neutral"> </span>
|
666
|
-
<span class="cline-any cline-yes">8×</span>
|
667
|
-
<span class="cline-any cline-neutral"> </span>
|
668
|
-
<span class="cline-any cline-neutral"> </span>
|
669
|
-
<span class="cline-any cline-neutral"> </span>
|
670
|
-
<span class="cline-any cline-neutral"> </span>
|
671
|
-
<span class="cline-any cline-neutral"> </span>
|
672
|
-
<span class="cline-any cline-yes">8×</span>
|
673
|
-
<span class="cline-any cline-neutral"> </span>
|
674
|
-
<span class="cline-any cline-neutral"> </span>
|
675
|
-
<span class="cline-any cline-neutral"> </span>
|
676
|
-
<span class="cline-any cline-neutral"> </span>
|
677
|
-
<span class="cline-any cline-neutral"> </span>
|
678
|
-
<span class="cline-any cline-yes">8×</span>
|
679
|
-
<span class="cline-any cline-neutral"> </span>
|
680
|
-
<span class="cline-any cline-neutral"> </span>
|
681
|
-
<span class="cline-any cline-neutral"> </span>
|
682
|
-
<span class="cline-any cline-neutral"> </span>
|
683
|
-
<span class="cline-any cline-neutral"> </span>
|
684
|
-
<span class="cline-any cline-yes">8×</span>
|
685
|
-
<span class="cline-any cline-neutral"> </span>
|
686
|
-
<span class="cline-any cline-neutral"> </span>
|
687
|
-
<span class="cline-any cline-neutral"> </span>
|
688
|
-
<span class="cline-any cline-neutral"> </span>
|
689
|
-
<span class="cline-any cline-neutral"> </span>
|
690
|
-
<span class="cline-any cline-neutral"> </span>
|
691
|
-
<span class="cline-any cline-neutral"> </span>
|
692
|
-
<span class="cline-any cline-neutral"> </span>
|
693
|
-
<span class="cline-any cline-yes">1×</span>
|
694
|
-
<span class="cline-any cline-yes">1519×</span>
|
695
|
-
<span class="cline-any cline-neutral"> </span>
|
696
|
-
<span class="cline-any cline-yes">1519×</span>
|
697
|
-
<span class="cline-any cline-neutral"> </span>
|
698
|
-
<span class="cline-any cline-neutral"> </span>
|
699
|
-
<span class="cline-any cline-yes">1519×</span>
|
700
|
-
<span class="cline-any cline-neutral"> </span>
|
701
|
-
<span class="cline-any cline-neutral"> </span>
|
702
|
-
<span class="cline-any cline-neutral"> </span>
|
703
|
-
<span class="cline-any cline-neutral"> </span>
|
704
|
-
<span class="cline-any cline-neutral"> </span>
|
705
|
-
<span class="cline-any cline-neutral"> </span>
|
706
|
-
<span class="cline-any cline-neutral"> </span>
|
707
|
-
<span class="cline-any cline-neutral"> </span>
|
708
|
-
<span class="cline-any cline-neutral"> </span>
|
709
|
-
<span class="cline-any cline-yes">318×</span>
|
710
|
-
<span class="cline-any cline-yes">318×</span>
|
711
|
-
<span class="cline-any cline-neutral"> </span>
|
712
|
-
<span class="cline-any cline-yes">318×</span>
|
713
|
-
<span class="cline-any cline-yes">84×</span>
|
714
|
-
<span class="cline-any cline-neutral"> </span>
|
715
|
-
<span class="cline-any cline-yes">234×</span>
|
716
|
-
<span class="cline-any cline-neutral"> </span>
|
717
|
-
<span class="cline-any cline-neutral"> </span>
|
718
|
-
<span class="cline-any cline-neutral"> </span>
|
719
|
-
<span class="cline-any cline-neutral"> </span>
|
720
|
-
<span class="cline-any cline-neutral"> </span>
|
721
|
-
<span class="cline-any cline-neutral"> </span>
|
722
|
-
<span class="cline-any cline-neutral"> </span>
|
723
|
-
<span class="cline-any cline-neutral"> </span>
|
724
|
-
<span class="cline-any cline-neutral"> </span>
|
725
|
-
<span class="cline-any cline-neutral"> </span>
|
726
|
-
<span class="cline-any cline-neutral"> </span>
|
727
|
-
<span class="cline-any cline-neutral"> </span>
|
728
|
-
<span class="cline-any cline-neutral"> </span>
|
729
|
-
<span class="cline-any cline-neutral"> </span>
|
730
|
-
<span class="cline-any cline-neutral"> </span>
|
731
|
-
<span class="cline-any cline-neutral"> </span>
|
732
|
-
<span class="cline-any cline-neutral"> </span>
|
733
|
-
<span class="cline-any cline-neutral"> </span>
|
734
|
-
<span class="cline-any cline-neutral"> </span>
|
735
|
-
<span class="cline-any cline-neutral"> </span>
|
736
|
-
<span class="cline-any cline-neutral"> </span>
|
737
|
-
<span class="cline-any cline-neutral"> </span>
|
738
|
-
<span class="cline-any cline-neutral"> </span>
|
739
|
-
<span class="cline-any cline-neutral"> </span>
|
740
|
-
<span class="cline-any cline-neutral"> </span>
|
741
|
-
<span class="cline-any cline-neutral"> </span>
|
742
|
-
<span class="cline-any cline-neutral"> </span>
|
743
|
-
<span class="cline-any cline-neutral"> </span>
|
744
|
-
<span class="cline-any cline-neutral"> </span>
|
745
|
-
<span class="cline-any cline-neutral"> </span>
|
746
|
-
<span class="cline-any cline-neutral"> </span>
|
747
|
-
<span class="cline-any cline-neutral"> </span>
|
748
|
-
<span class="cline-any cline-neutral"> </span>
|
749
|
-
<span class="cline-any cline-yes">84×</span>
|
750
|
-
<span class="cline-any cline-yes">84×</span>
|
751
|
-
<span class="cline-any cline-yes">84×</span>
|
752
|
-
<span class="cline-any cline-yes">84×</span>
|
753
|
-
<span class="cline-any cline-yes">84×</span>
|
754
|
-
<span class="cline-any cline-yes">84×</span>
|
755
|
-
<span class="cline-any cline-neutral"> </span>
|
756
|
-
<span class="cline-any cline-neutral"> </span>
|
757
|
-
<span class="cline-any cline-yes">84×</span>
|
758
|
-
<span class="cline-any cline-neutral"> </span>
|
759
|
-
<span class="cline-any cline-neutral"> </span>
|
760
|
-
<span class="cline-any cline-neutral"> </span>
|
761
|
-
<span class="cline-any cline-yes">84×</span>
|
762
|
-
<span class="cline-any cline-neutral"> </span>
|
763
|
-
<span class="cline-any cline-neutral"> </span>
|
764
|
-
<span class="cline-any cline-yes">84×</span>
|
765
|
-
<span class="cline-any cline-neutral"> </span>
|
766
|
-
<span class="cline-any cline-yes">84×</span>
|
767
|
-
<span class="cline-any cline-yes">84×</span>
|
768
|
-
<span class="cline-any cline-neutral"> </span>
|
769
|
-
<span class="cline-any cline-yes">84×</span>
|
770
|
-
<span class="cline-any cline-neutral"> </span>
|
771
|
-
<span class="cline-any cline-neutral"> </span>
|
772
|
-
<span class="cline-any cline-neutral"> </span>
|
773
|
-
<span class="cline-any cline-neutral"> </span>
|
774
|
-
<span class="cline-any cline-neutral"> </span>
|
775
|
-
<span class="cline-any cline-neutral"> </span>
|
776
|
-
<span class="cline-any cline-neutral"> </span>
|
777
|
-
<span class="cline-any cline-yes">477×</span>
|
778
|
-
<span class="cline-any cline-yes">477×</span>
|
779
|
-
<span class="cline-any cline-neutral"> </span>
|
780
|
-
<span class="cline-any cline-neutral"> </span>
|
781
|
-
<span class="cline-any cline-neutral"> </span>
|
782
|
-
<span class="cline-any cline-neutral"> </span>
|
783
|
-
<span class="cline-any cline-yes">477×</span>
|
784
|
-
<span class="cline-any cline-yes">406×</span>
|
785
|
-
<span class="cline-any cline-neutral"> </span>
|
786
|
-
<span class="cline-any cline-yes">406×</span>
|
787
|
-
<span class="cline-any cline-yes">84×</span>
|
788
|
-
<span class="cline-any cline-neutral"> </span>
|
789
|
-
<span class="cline-any cline-yes">322×</span>
|
790
|
-
<span class="cline-any cline-neutral"> </span>
|
791
|
-
<span class="cline-any cline-neutral"> </span>
|
792
|
-
<span class="cline-any cline-neutral"> </span>
|
793
|
-
<span class="cline-any cline-neutral"> </span>
|
794
|
-
<span class="cline-any cline-neutral"> </span>
|
795
|
-
<span class="cline-any cline-neutral"> </span>
|
796
|
-
<span class="cline-any cline-neutral"> </span>
|
797
|
-
<span class="cline-any cline-neutral"> </span>
|
798
|
-
<span class="cline-any cline-neutral"> </span>
|
799
|
-
<span class="cline-any cline-neutral"> </span>
|
800
|
-
<span class="cline-any cline-neutral"> </span>
|
801
|
-
<span class="cline-any cline-yes">84×</span>
|
802
|
-
<span class="cline-any cline-yes">84×</span>
|
803
|
-
<span class="cline-any cline-yes">84×</span>
|
804
|
-
<span class="cline-any cline-yes">84×</span>
|
805
|
-
<span class="cline-any cline-neutral"> </span>
|
806
|
-
<span class="cline-any cline-neutral"> </span>
|
807
|
-
<span class="cline-any cline-neutral"> </span>
|
808
|
-
<span class="cline-any cline-neutral"> </span>
|
809
|
-
<span class="cline-any cline-neutral"> </span>
|
810
|
-
<span class="cline-any cline-neutral"> </span>
|
811
|
-
<span class="cline-any cline-neutral"> </span>
|
812
|
-
<span class="cline-any cline-neutral"> </span>
|
813
|
-
<span class="cline-any cline-neutral"> </span>
|
814
|
-
<span class="cline-any cline-yes">454×</span>
|
815
|
-
<span class="cline-any cline-neutral"> </span>
|
816
|
-
<span class="cline-any cline-yes">454×</span>
|
817
|
-
<span class="cline-any cline-yes">454×</span>
|
818
|
-
<span class="cline-any cline-yes">454×</span>
|
819
|
-
<span class="cline-any cline-yes">454×</span>
|
820
|
-
<span class="cline-any cline-neutral"> </span>
|
821
|
-
<span class="cline-any cline-neutral"> </span>
|
822
|
-
<span class="cline-any cline-yes">454×</span>
|
823
|
-
<span class="cline-any cline-neutral"> </span>
|
824
|
-
<span class="cline-any cline-neutral"> </span>
|
825
|
-
<span class="cline-any cline-yes">548×</span>
|
826
|
-
<span class="cline-any cline-neutral"> </span>
|
827
|
-
<span class="cline-any cline-yes">548×</span>
|
828
|
-
<span class="cline-any cline-yes">548×</span>
|
829
|
-
<span class="cline-any cline-neutral"> </span>
|
830
|
-
<span class="cline-any cline-neutral"> </span>
|
831
|
-
<span class="cline-any cline-neutral"> </span>
|
832
|
-
<span class="cline-any cline-yes">454×</span>
|
833
|
-
<span class="cline-any cline-yes">378×</span>
|
834
|
-
<span class="cline-any cline-neutral"> </span>
|
835
|
-
<span class="cline-any cline-neutral"> </span>
|
836
|
-
<span class="cline-any cline-yes">454×</span>
|
837
|
-
<span class="cline-any cline-yes">132×</span>
|
838
|
-
<span class="cline-any cline-neutral"> </span>
|
839
|
-
<span class="cline-any cline-neutral"> </span>
|
840
|
-
<span class="cline-any cline-yes">454×</span>
|
841
|
-
<span class="cline-any cline-yes">4×</span>
|
842
|
-
<span class="cline-any cline-neutral"> </span>
|
843
|
-
<span class="cline-any cline-neutral"> </span>
|
844
|
-
<span class="cline-any cline-neutral"> </span>
|
845
|
-
<span class="cline-any cline-neutral"> </span>
|
846
|
-
<span class="cline-any cline-neutral"> </span>
|
847
|
-
<span class="cline-any cline-neutral"> </span>
|
848
|
-
<span class="cline-any cline-neutral"> </span>
|
849
|
-
<span class="cline-any cline-neutral"> </span>
|
850
|
-
<span class="cline-any cline-neutral"> </span>
|
851
|
-
<span class="cline-any cline-neutral"> </span>
|
852
|
-
<span class="cline-any cline-neutral"> </span>
|
853
|
-
<span class="cline-any cline-yes">378×</span>
|
854
|
-
<span class="cline-any cline-neutral"> </span>
|
855
|
-
<span class="cline-any cline-yes">378×</span>
|
856
|
-
<span class="cline-any cline-neutral"> </span>
|
857
|
-
<span class="cline-any cline-no"> </span>
|
858
|
-
<span class="cline-any cline-neutral"> </span>
|
859
|
-
<span class="cline-any cline-neutral"> </span>
|
860
|
-
<span class="cline-any cline-yes">378×</span>
|
861
|
-
<span class="cline-any cline-yes">378×</span>
|
862
|
-
<span class="cline-any cline-yes">378×</span>
|
863
|
-
<span class="cline-any cline-neutral"> </span>
|
864
|
-
<span class="cline-any cline-yes">378×</span>
|
865
|
-
<span class="cline-any cline-no"> </span>
|
866
|
-
<span class="cline-any cline-neutral"> </span>
|
867
|
-
<span class="cline-any cline-neutral"> </span>
|
868
|
-
<span class="cline-any cline-yes">378×</span>
|
869
|
-
<span class="cline-any cline-neutral"> </span>
|
870
|
-
<span class="cline-any cline-yes">378×</span>
|
871
|
-
<span class="cline-any cline-no"> </span>
|
872
|
-
<span class="cline-any cline-neutral"> </span>
|
873
|
-
<span class="cline-any cline-neutral"> </span>
|
874
|
-
<span class="cline-any cline-yes">378×</span>
|
875
|
-
<span class="cline-any cline-neutral"> </span>
|
876
|
-
<span class="cline-any cline-neutral"> </span>
|
877
|
-
<span class="cline-any cline-neutral"> </span>
|
878
|
-
<span class="cline-any cline-neutral"> </span>
|
879
|
-
<span class="cline-any cline-neutral"> </span>
|
880
|
-
<span class="cline-any cline-neutral"> </span>
|
881
|
-
<span class="cline-any cline-neutral"> </span>
|
882
|
-
<span class="cline-any cline-neutral"> </span>
|
883
|
-
<span class="cline-any cline-neutral"> </span>
|
884
|
-
<span class="cline-any cline-neutral"> </span>
|
885
|
-
<span class="cline-any cline-yes">378×</span>
|
886
|
-
<span class="cline-any cline-neutral"> </span>
|
887
|
-
<span class="cline-any cline-neutral"> </span>
|
888
|
-
<span class="cline-any cline-yes">378×</span>
|
889
|
-
<span class="cline-any cline-neutral"> </span>
|
890
|
-
<span class="cline-any cline-neutral"> </span>
|
891
|
-
<span class="cline-any cline-yes">378×</span>
|
892
|
-
<span class="cline-any cline-neutral"> </span>
|
893
|
-
<span class="cline-any cline-neutral"> </span>
|
894
|
-
<span class="cline-any cline-yes">378×</span>
|
895
|
-
<span class="cline-any cline-neutral"> </span>
|
896
|
-
<span class="cline-any cline-yes">378×</span>
|
897
|
-
<span class="cline-any cline-yes">378×</span>
|
898
|
-
<span class="cline-any cline-yes">548×</span>
|
899
|
-
<span class="cline-any cline-yes">548×</span>
|
900
|
-
<span class="cline-any cline-neutral"> </span>
|
901
|
-
<span class="cline-any cline-yes">548×</span>
|
902
|
-
<span class="cline-any cline-neutral"> </span>
|
903
|
-
<span class="cline-any cline-yes">548×</span>
|
904
|
-
<span class="cline-any cline-neutral"> </span>
|
905
|
-
<span class="cline-any cline-yes">234×</span>
|
906
|
-
<span class="cline-any cline-yes">234×</span>
|
907
|
-
<span class="cline-any cline-neutral"> </span>
|
908
|
-
<span class="cline-any cline-neutral"> </span>
|
909
|
-
<span class="cline-any cline-yes">234×</span>
|
910
|
-
<span class="cline-any cline-neutral"> </span>
|
911
|
-
<span class="cline-any cline-neutral"> </span>
|
912
|
-
<span class="cline-any cline-yes">234×</span>
|
913
|
-
<span class="cline-any cline-neutral"> </span>
|
914
|
-
<span class="cline-any cline-yes">102×</span>
|
915
|
-
<span class="cline-any cline-neutral"> </span>
|
916
|
-
<span class="cline-any cline-neutral"> </span>
|
917
|
-
<span class="cline-any cline-neutral"> </span>
|
918
|
-
<span class="cline-any cline-neutral"> </span>
|
919
|
-
<span class="cline-any cline-neutral"> </span>
|
920
|
-
<span class="cline-any cline-neutral"> </span>
|
921
|
-
<span class="cline-any cline-neutral"> </span>
|
922
|
-
<span class="cline-any cline-neutral"> </span>
|
923
|
-
<span class="cline-any cline-neutral"> </span>
|
924
|
-
<span class="cline-any cline-yes">314×</span>
|
925
|
-
<span class="cline-any cline-neutral"> </span>
|
926
|
-
<span class="cline-any cline-neutral"> </span>
|
927
|
-
<span class="cline-any cline-yes">314×</span>
|
928
|
-
<span class="cline-any cline-neutral"> </span>
|
929
|
-
<span class="cline-any cline-neutral"> </span>
|
930
|
-
<span class="cline-any cline-neutral"> </span>
|
931
|
-
<span class="cline-any cline-yes">378×</span>
|
932
|
-
<span class="cline-any cline-neutral"> </span>
|
933
|
-
<span class="cline-any cline-neutral"> </span>
|
934
|
-
<span class="cline-any cline-neutral"> </span>
|
935
|
-
<span class="cline-any cline-neutral"> </span>
|
936
|
-
<span class="cline-any cline-neutral"> </span>
|
937
|
-
<span class="cline-any cline-neutral"> </span>
|
938
|
-
<span class="cline-any cline-neutral"> </span>
|
939
|
-
<span class="cline-any cline-neutral"> </span>
|
940
|
-
<span class="cline-any cline-neutral"> </span>
|
941
|
-
<span class="cline-any cline-neutral"> </span>
|
942
|
-
<span class="cline-any cline-neutral"> </span>
|
943
|
-
<span class="cline-any cline-neutral"> </span>
|
944
|
-
<span class="cline-any cline-neutral"> </span>
|
945
|
-
<span class="cline-any cline-yes">378×</span>
|
946
|
-
<span class="cline-any cline-yes">378×</span>
|
947
|
-
<span class="cline-any cline-neutral"> </span>
|
948
|
-
<span class="cline-any cline-neutral"> </span>
|
949
|
-
<span class="cline-any cline-neutral"> </span>
|
950
|
-
<span class="cline-any cline-yes">378×</span>
|
951
|
-
<span class="cline-any cline-yes">1051×</span>
|
952
|
-
<span class="cline-any cline-yes">1051×</span>
|
953
|
-
<span class="cline-any cline-neutral"> </span>
|
954
|
-
<span class="cline-any cline-neutral"> </span>
|
955
|
-
<span class="cline-any cline-yes">1051×</span>
|
956
|
-
<span class="cline-any cline-yes">481×</span>
|
957
|
-
<span class="cline-any cline-neutral"> </span>
|
958
|
-
<span class="cline-any cline-yes">234×</span>
|
959
|
-
<span class="cline-any cline-yes">234×</span>
|
960
|
-
<span class="cline-any cline-neutral"> </span>
|
961
|
-
<span class="cline-any cline-neutral"> </span>
|
962
|
-
<span class="cline-any cline-neutral"> </span>
|
963
|
-
<span class="cline-any cline-yes">481×</span>
|
964
|
-
<span class="cline-any cline-neutral"> </span>
|
965
|
-
<span class="cline-any cline-yes">481×</span>
|
966
|
-
<span class="cline-any cline-neutral"> </span>
|
967
|
-
<span class="cline-any cline-yes">395×</span>
|
968
|
-
<span class="cline-any cline-neutral"> </span>
|
969
|
-
<span class="cline-any cline-neutral"> </span>
|
970
|
-
<span class="cline-any cline-neutral"> </span>
|
971
|
-
<span class="cline-any cline-neutral"> </span>
|
972
|
-
<span class="cline-any cline-yes">1051×</span>
|
973
|
-
<span class="cline-any cline-neutral"> </span>
|
974
|
-
<span class="cline-any cline-neutral"> </span>
|
975
|
-
<span class="cline-any cline-neutral"> </span>
|
976
|
-
<span class="cline-any cline-neutral"> </span>
|
977
|
-
<span class="cline-any cline-neutral"> </span>
|
978
|
-
<span class="cline-any cline-neutral"> </span>
|
979
|
-
<span class="cline-any cline-neutral"> </span>
|
980
|
-
<span class="cline-any cline-neutral"> </span>
|
981
|
-
<span class="cline-any cline-yes">132×</span>
|
982
|
-
<span class="cline-any cline-yes">132×</span>
|
983
|
-
<span class="cline-any cline-neutral"> </span>
|
984
|
-
<span class="cline-any cline-yes">132×</span>
|
985
|
-
<span class="cline-any cline-neutral"> </span>
|
986
|
-
<span class="cline-any cline-yes">59×</span>
|
987
|
-
<span class="cline-any cline-neutral"> </span>
|
988
|
-
<span class="cline-any cline-neutral"> </span>
|
989
|
-
<span class="cline-any cline-yes">132×</span>
|
990
|
-
<span class="cline-any cline-neutral"> </span>
|
991
|
-
<span class="cline-any cline-yes">132×</span>
|
992
|
-
<span class="cline-any cline-yes">132×</span>
|
993
|
-
<span class="cline-any cline-neutral"> </span>
|
994
|
-
<span class="cline-any cline-yes">2×</span>
|
995
|
-
<span class="cline-any cline-neutral"> </span>
|
996
|
-
<span class="cline-any cline-neutral"> </span>
|
997
|
-
<span class="cline-any cline-yes">130×</span>
|
998
|
-
<span class="cline-any cline-neutral"> </span>
|
999
|
-
<span class="cline-any cline-neutral"> </span>
|
1000
|
-
<span class="cline-any cline-neutral"> </span>
|
1001
|
-
<span class="cline-any cline-yes">8×</span>
|
1002
|
-
<span class="cline-any cline-neutral"> </span>
|
1003
|
-
<span class="cline-any cline-yes">122×</span>
|
1004
|
-
<span class="cline-any cline-neutral"> </span>
|
1005
|
-
<span class="cline-any cline-neutral"> </span>
|
1006
|
-
<span class="cline-any cline-neutral"> </span>
|
1007
|
-
<span class="cline-any cline-yes">130×</span>
|
1008
|
-
<span class="cline-any cline-yes">130×</span>
|
1009
|
-
<span class="cline-any cline-neutral"> </span>
|
1010
|
-
<span class="cline-any cline-neutral"> </span>
|
1011
|
-
<span class="cline-any cline-neutral"> </span>
|
1012
|
-
<span class="cline-any cline-neutral"> </span>
|
1013
|
-
<span class="cline-any cline-neutral"> </span>
|
1014
|
-
<span class="cline-any cline-neutral"> </span>
|
1015
|
-
<span class="cline-any cline-neutral"> </span>
|
1016
|
-
<span class="cline-any cline-neutral"> </span>
|
1017
|
-
<span class="cline-any cline-neutral"> </span>
|
1018
|
-
<span class="cline-any cline-yes">4×</span>
|
1019
|
-
<span class="cline-any cline-neutral"> </span>
|
1020
|
-
<span class="cline-any cline-yes">4×</span>
|
1021
|
-
<span class="cline-any cline-neutral"> </span>
|
1022
|
-
<span class="cline-any cline-yes">2×</span>
|
1023
|
-
<span class="cline-any cline-neutral"> </span>
|
1024
|
-
<span class="cline-any cline-neutral"> </span>
|
1025
|
-
<span class="cline-any cline-yes">4×</span>
|
1026
|
-
<span class="cline-any cline-neutral"> </span>
|
1027
|
-
<span class="cline-any cline-yes">4×</span>
|
1028
|
-
<span class="cline-any cline-neutral"> </span>
|
1029
|
-
<span class="cline-any cline-yes">4×</span>
|
1030
|
-
<span class="cline-any cline-neutral"> </span>
|
1031
|
-
<span class="cline-any cline-yes">2×</span>
|
1032
|
-
<span class="cline-any cline-neutral"> </span>
|
1033
|
-
<span class="cline-any cline-neutral"> </span>
|
1034
|
-
<span class="cline-any cline-yes">4×</span>
|
1035
|
-
<span class="cline-any cline-yes">2×</span>
|
1036
|
-
<span class="cline-any cline-neutral"> </span>
|
1037
|
-
<span class="cline-any cline-neutral"> </span>
|
1038
|
-
<span class="cline-any cline-neutral"> </span>
|
1039
|
-
<span class="cline-any cline-neutral"> </span>
|
1040
|
-
<span class="cline-any cline-neutral"> </span>
|
1041
|
-
<span class="cline-any cline-neutral"> </span>
|
1042
|
-
<span class="cline-any cline-neutral"> </span>
|
1043
|
-
<span class="cline-any cline-neutral"> </span>
|
1044
|
-
<span class="cline-any cline-neutral"> </span>
|
1045
|
-
<span class="cline-any cline-yes">2×</span>
|
1046
|
-
<span class="cline-any cline-neutral"> </span>
|
1047
|
-
<span class="cline-any cline-yes">2×</span>
|
1048
|
-
<span class="cline-any cline-neutral"> </span>
|
1049
|
-
<span class="cline-any cline-neutral"> </span>
|
1050
|
-
<span class="cline-any cline-yes">2×</span>
|
1051
|
-
<span class="cline-any cline-yes">2×</span>
|
1052
|
-
<span class="cline-any cline-no"> </span>
|
1053
|
-
<span class="cline-any cline-neutral"> </span>
|
1054
|
-
<span class="cline-any cline-yes">2×</span>
|
1055
|
-
<span class="cline-any cline-neutral"> </span>
|
1056
|
-
<span class="cline-any cline-neutral"> </span>
|
1057
|
-
<span class="cline-any cline-neutral"> </span>
|
1058
|
-
<span class="cline-any cline-neutral"> </span>
|
1059
|
-
<span class="cline-any cline-neutral"> </span>
|
1060
|
-
<span class="cline-any cline-neutral"> </span>
|
1061
|
-
<span class="cline-any cline-neutral"> </span>
|
1062
|
-
<span class="cline-any cline-neutral"> </span>
|
1063
|
-
<span class="cline-any cline-neutral"> </span>
|
1064
|
-
<span class="cline-any cline-neutral"> </span>
|
1065
|
-
<span class="cline-any cline-neutral"> </span>
|
1066
|
-
<span class="cline-any cline-yes">2×</span>
|
1067
|
-
<span class="cline-any cline-neutral"> </span>
|
1068
|
-
<span class="cline-any cline-yes">2×</span>
|
1069
|
-
<span class="cline-any cline-neutral"> </span>
|
1070
|
-
<span class="cline-any cline-neutral"> </span>
|
1071
|
-
<span class="cline-any cline-yes">2×</span>
|
1072
|
-
<span class="cline-any cline-yes">1×</span>
|
1073
|
-
<span class="cline-any cline-neutral"> </span>
|
1074
|
-
<span class="cline-any cline-neutral"> </span>
|
1075
|
-
<span class="cline-any cline-yes">2×</span>
|
1076
|
-
<span class="cline-any cline-neutral"> </span>
|
1077
|
-
<span class="cline-any cline-neutral"> </span>
|
1078
|
-
<span class="cline-any cline-neutral"> </span>
|
1079
|
-
<span class="cline-any cline-neutral"> </span>
|
1080
|
-
<span class="cline-any cline-neutral"> </span>
|
1081
|
-
<span class="cline-any cline-neutral"> </span>
|
1082
|
-
<span class="cline-any cline-neutral"> </span>
|
1083
|
-
<span class="cline-any cline-neutral"> </span>
|
1084
|
-
<span class="cline-any cline-neutral"> </span>
|
1085
|
-
<span class="cline-any cline-neutral"> </span>
|
1086
|
-
<span class="cline-any cline-yes">132×</span>
|
1087
|
-
<span class="cline-any cline-neutral"> </span>
|
1088
|
-
<span class="cline-any cline-neutral"> </span>
|
1089
|
-
<span class="cline-any cline-yes">132×</span>
|
1090
|
-
<span class="cline-any cline-neutral"> </span>
|
1091
|
-
<span class="cline-any cline-neutral"> </span>
|
1092
|
-
<span class="cline-any cline-neutral"> </span>
|
1093
|
-
<span class="cline-any cline-neutral"> </span>
|
1094
|
-
<span class="cline-any cline-neutral"> </span>
|
1095
|
-
<span class="cline-any cline-neutral"> </span>
|
1096
|
-
<span class="cline-any cline-neutral"> </span>
|
1097
|
-
<span class="cline-any cline-neutral"> </span>
|
1098
|
-
<span class="cline-any cline-yes">2×</span>
|
1099
|
-
<span class="cline-any cline-neutral"> </span>
|
1100
|
-
<span class="cline-any cline-neutral"> </span>
|
1101
|
-
<span class="cline-any cline-yes">2×</span>
|
1102
|
-
<span class="cline-any cline-yes">2×</span>
|
1103
|
-
<span class="cline-any cline-neutral"> </span>
|
1104
|
-
<span class="cline-any cline-neutral"> </span>
|
1105
|
-
<span class="cline-any cline-neutral"> </span>
|
1106
|
-
<span class="cline-any cline-neutral"> </span>
|
1107
|
-
<span class="cline-any cline-neutral"> </span>
|
1108
|
-
<span class="cline-any cline-neutral"> </span>
|
1109
|
-
<span class="cline-any cline-neutral"> </span>
|
1110
|
-
<span class="cline-any cline-neutral"> </span>
|
1111
|
-
<span class="cline-any cline-neutral"> </span>
|
1112
|
-
<span class="cline-any cline-yes">130×</span>
|
1113
|
-
<span class="cline-any cline-neutral"> </span>
|
1114
|
-
<span class="cline-any cline-neutral"> </span>
|
1115
|
-
<span class="cline-any cline-yes">130×</span>
|
1116
|
-
<span class="cline-any cline-yes">130×</span>
|
1117
|
-
<span class="cline-any cline-neutral"> </span>
|
1118
|
-
<span class="cline-any cline-neutral"> </span>
|
1119
|
-
<span class="cline-any cline-neutral"> </span>
|
1120
|
-
<span class="cline-any cline-neutral"> </span>
|
1121
|
-
<span class="cline-any cline-neutral"> </span>
|
1122
|
-
<span class="cline-any cline-neutral"> </span>
|
1123
|
-
<span class="cline-any cline-neutral"> </span>
|
1124
|
-
<span class="cline-any cline-neutral"> </span>
|
1125
|
-
<span class="cline-any cline-neutral"> </span>
|
1126
|
-
<span class="cline-any cline-neutral"> </span>
|
1127
|
-
<span class="cline-any cline-yes">214×</span>
|
1128
|
-
<span class="cline-any cline-yes">214×</span>
|
1129
|
-
<span class="cline-any cline-yes">214×</span>
|
1130
|
-
<span class="cline-any cline-neutral"> </span>
|
1131
|
-
<span class="cline-any cline-neutral"> </span>
|
1132
|
-
<span class="cline-any cline-neutral"> </span>
|
1133
|
-
<span class="cline-any cline-neutral"> </span>
|
1134
|
-
<span class="cline-any cline-neutral"> </span>
|
1135
|
-
<span class="cline-any cline-neutral"> </span>
|
1136
|
-
<span class="cline-any cline-neutral"> </span>
|
1137
|
-
<span class="cline-any cline-neutral"> </span>
|
1138
|
-
<span class="cline-any cline-neutral"> </span>
|
1139
|
-
<span class="cline-any cline-neutral"> </span>
|
1140
|
-
<span class="cline-any cline-yes">214×</span>
|
1141
|
-
<span class="cline-any cline-no"> </span>
|
1142
|
-
<span class="cline-any cline-no"> </span>
|
1143
|
-
<span class="cline-any cline-neutral"> </span>
|
1144
|
-
<span class="cline-any cline-neutral"> </span>
|
1145
|
-
<span class="cline-any cline-yes">214×</span>
|
1146
|
-
<span class="cline-any cline-neutral"> </span>
|
1147
|
-
<span class="cline-any cline-neutral"> </span>
|
1148
|
-
<span class="cline-any cline-yes">214×</span>
|
1149
|
-
<span class="cline-any cline-neutral"> </span>
|
1150
|
-
<span class="cline-any cline-neutral"> </span>
|
1151
|
-
<span class="cline-any cline-neutral"> </span>
|
1152
|
-
<span class="cline-any cline-neutral"> </span>
|
1153
|
-
<span class="cline-any cline-neutral"> </span>
|
1154
|
-
<span class="cline-any cline-neutral"> </span>
|
1155
|
-
<span class="cline-any cline-yes">214×</span>
|
1156
|
-
<span class="cline-any cline-yes">8×</span>
|
1157
|
-
<span class="cline-any cline-yes">8×</span>
|
1158
|
-
<span class="cline-any cline-neutral"> </span>
|
1159
|
-
<span class="cline-any cline-neutral"> </span>
|
1160
|
-
<span class="cline-any cline-neutral"> </span>
|
1161
|
-
<span class="cline-any cline-neutral"> </span>
|
1162
|
-
<span class="cline-any cline-neutral"> </span>
|
1163
|
-
<span class="cline-any cline-neutral"> </span>
|
1164
|
-
<span class="cline-any cline-neutral"> </span>
|
1165
|
-
<span class="cline-any cline-neutral"> </span>
|
1166
|
-
<span class="cline-any cline-neutral"> </span>
|
1167
|
-
<span class="cline-any cline-neutral"> </span>
|
1168
|
-
<span class="cline-any cline-neutral"> </span>
|
1169
|
-
<span class="cline-any cline-yes">130×</span>
|
1170
|
-
<span class="cline-any cline-yes">130×</span>
|
1171
|
-
<span class="cline-any cline-yes">130×</span>
|
1172
|
-
<span class="cline-any cline-neutral"> </span>
|
1173
|
-
<span class="cline-any cline-yes">130×</span>
|
1174
|
-
<span class="cline-any cline-neutral"> </span>
|
1175
|
-
<span class="cline-any cline-yes">52×</span>
|
1176
|
-
<span class="cline-any cline-yes">52×</span>
|
1177
|
-
<span class="cline-any cline-yes">51×</span>
|
1178
|
-
<span class="cline-any cline-yes">51×</span>
|
1179
|
-
<span class="cline-any cline-neutral"> </span>
|
1180
|
-
<span class="cline-any cline-neutral"> </span>
|
1181
|
-
<span class="cline-any cline-neutral"> </span>
|
1182
|
-
<span class="cline-any cline-yes">130×</span>
|
1183
|
-
<span class="cline-any cline-yes">130×</span>
|
1184
|
-
<span class="cline-any cline-yes">130×</span>
|
1185
|
-
<span class="cline-any cline-yes">79×</span>
|
1186
|
-
<span class="cline-any cline-neutral"> </span>
|
1187
|
-
<span class="cline-any cline-neutral"> </span>
|
1188
|
-
<span class="cline-any cline-no"> </span>
|
1189
|
-
<span class="cline-any cline-no"> </span>
|
1190
|
-
<span class="cline-any cline-neutral"> </span>
|
1191
|
-
<span class="cline-any cline-neutral"> </span>
|
1192
|
-
<span class="cline-any cline-neutral"> </span>
|
1193
|
-
<span class="cline-any cline-neutral"> </span>
|
1194
|
-
<span class="cline-any cline-neutral"> </span>
|
1195
|
-
<span class="cline-any cline-neutral"> </span>
|
1196
|
-
<span class="cline-any cline-neutral"> </span>
|
1197
|
-
<span class="cline-any cline-neutral"> </span>
|
1198
|
-
<span class="cline-any cline-neutral"> </span>
|
1199
|
-
<span class="cline-any cline-neutral"> </span>
|
1200
|
-
<span class="cline-any cline-yes">130×</span>
|
1201
|
-
<span class="cline-any cline-neutral"> </span>
|
1202
|
-
<span class="cline-any cline-neutral"> </span>
|
1203
|
-
<span class="cline-any cline-yes">130×</span>
|
1204
|
-
<span class="cline-any cline-yes">104×</span>
|
1205
|
-
<span class="cline-any cline-neutral"> </span>
|
1206
|
-
<span class="cline-any cline-neutral"> </span>
|
1207
|
-
<span class="cline-any cline-neutral"> </span>
|
1208
|
-
<span class="cline-any cline-yes">130×</span>
|
1209
|
-
<span class="cline-any cline-yes">78×</span>
|
1210
|
-
<span class="cline-any cline-neutral"> </span>
|
1211
|
-
<span class="cline-any cline-neutral"> </span>
|
1212
|
-
<span class="cline-any cline-yes">130×</span>
|
1213
|
-
<span class="cline-any cline-neutral"> </span>
|
1214
|
-
<span class="cline-any cline-neutral"> </span>
|
1215
|
-
<span class="cline-any cline-neutral"> </span>
|
1216
|
-
<span class="cline-any cline-neutral"> </span>
|
1217
|
-
<span class="cline-any cline-neutral"> </span>
|
1218
|
-
<span class="cline-any cline-neutral"> </span>
|
1219
|
-
<span class="cline-any cline-neutral"> </span>
|
1220
|
-
<span class="cline-any cline-neutral"> </span>
|
1221
|
-
<span class="cline-any cline-neutral"> </span>
|
1222
|
-
<span class="cline-any cline-neutral"> </span>
|
1223
|
-
<span class="cline-any cline-yes">1×</span>
|
1224
|
-
<span class="cline-any cline-yes">52×</span>
|
1225
|
-
<span class="cline-any cline-neutral"> </span>
|
1226
|
-
<span class="cline-any cline-neutral"> </span>
|
1227
|
-
<span class="cline-any cline-yes">52×</span>
|
1228
|
-
<span class="cline-any cline-neutral"> </span>
|
1229
|
-
<span class="cline-any cline-yes">1×</span>
|
1230
|
-
<span class="cline-any cline-yes">50×</span>
|
1231
|
-
<span class="cline-any cline-yes">50×</span>
|
1232
|
-
<span class="cline-any cline-neutral"> </span>
|
1233
|
-
<span class="cline-any cline-neutral"> </span>
|
1234
|
-
<span class="cline-any cline-yes">1×</span>
|
1235
|
-
<span class="cline-any cline-yes">2×</span>
|
1236
|
-
<span class="cline-any cline-yes">2×</span>
|
1237
|
-
<span class="cline-any cline-yes">2×</span>
|
1238
|
-
<span class="cline-any cline-neutral"> </span>
|
1239
|
-
<span class="cline-any cline-neutral"> </span>
|
1240
|
-
<span class="cline-any cline-neutral"> </span>
|
1241
|
-
<span class="cline-any cline-yes">52×</span>
|
1242
|
-
<span class="cline-any cline-yes">50×</span>
|
1243
|
-
<span class="cline-any cline-neutral"> </span>
|
1244
|
-
<span class="cline-any cline-neutral"> </span>
|
1245
|
-
<span class="cline-any cline-no"> </span>
|
1246
|
-
<span class="cline-any cline-no"> </span>
|
1247
|
-
<span class="cline-any cline-neutral"> </span>
|
1248
|
-
<span class="cline-any cline-neutral"> </span>
|
1249
|
-
<span class="cline-any cline-neutral"> </span>
|
1250
|
-
<span class="cline-any cline-yes">2×</span>
|
1251
|
-
<span class="cline-any cline-neutral"> </span>
|
1252
|
-
<span class="cline-any cline-neutral"> </span>
|
1253
|
-
<span class="cline-any cline-neutral"> </span>
|
1254
|
-
<span class="cline-any cline-neutral"> </span>
|
1255
|
-
<span class="cline-any cline-neutral"> </span>
|
1256
|
-
<span class="cline-any cline-neutral"> </span>
|
1257
|
-
<span class="cline-any cline-neutral"> </span>
|
1258
|
-
<span class="cline-any cline-neutral"> </span>
|
1259
|
-
<span class="cline-any cline-neutral"> </span>
|
1260
|
-
<span class="cline-any cline-neutral"> </span>
|
1261
|
-
<span class="cline-any cline-neutral"> </span>
|
1262
|
-
<span class="cline-any cline-yes">130×</span>
|
1263
|
-
<span class="cline-any cline-yes">130×</span>
|
1264
|
-
<span class="cline-any cline-neutral"> </span>
|
1265
|
-
<span class="cline-any cline-neutral"> </span>
|
1266
|
-
<span class="cline-any cline-neutral"> </span>
|
1267
|
-
<span class="cline-any cline-neutral"> </span>
|
1268
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import HtmlParser from 'prescribe';
|
1269
|
-
import * as utils from './utils';
|
1270
|
-
|
1271
|
-
/**
|
1272
|
-
* Turn on to debug how each chunk affected the DOM.
|
1273
|
-
* @type {boolean}
|
1274
|
-
*/
|
1275
|
-
const DEBUG_CHUNK = false;
|
1276
|
-
|
1277
|
-
/**
|
1278
|
-
* Prefix for data attributes on DOM elements.
|
1279
|
-
* @type {string}
|
1280
|
-
*/
|
1281
|
-
const BASEATTR = 'data-ps-';
|
1282
|
-
|
1283
|
-
/**
|
1284
|
-
* ID for the style proxy
|
1285
|
-
* @type {string}
|
1286
|
-
*/
|
1287
|
-
const PROXY_STYLE = 'ps-style';
|
1288
|
-
|
1289
|
-
/**
|
1290
|
-
* ID for the script proxy
|
1291
|
-
* @type {string}
|
1292
|
-
*/
|
1293
|
-
const PROXY_SCRIPT = 'ps-script';
|
1294
|
-
|
1295
|
-
/**
|
1296
|
-
* Get data attributes
|
1297
|
-
*
|
1298
|
-
* @param {Object} el The DOM element.
|
1299
|
-
* @param {String} name The attribute name.
|
1300
|
-
* @returns {String}
|
1301
|
-
*/
|
1302
|
-
function getData(el, name) {
|
1303
|
-
const attr = BASEATTR + name;
|
1304
|
-
|
1305
|
-
const val = el.getAttribute(attr);
|
1306
|
-
|
1307
|
-
// IE 8 returns a number if it's a number
|
1308
|
-
return !utils.existy(val) ? val : String(val);
|
1309
|
-
}
|
1310
|
-
|
1311
|
-
/**
|
1312
|
-
* Set data attributes
|
1313
|
-
*
|
1314
|
-
* @param {Object} el The DOM element.
|
1315
|
-
* @param {String} name The attribute name.
|
1316
|
-
* @param {null|*} value The attribute value.
|
1317
|
-
*/
|
1318
|
-
function setData(el, name, value = null) {
|
1319
|
-
const attr = BASEATTR + name;
|
1320
|
-
|
1321
|
-
if (utils.existy(value) && value !== '') {
|
1322
|
-
el.setAttribute(attr, value);
|
1323
|
-
} else {
|
1324
|
-
el.removeAttribute(attr);
|
1325
|
-
}
|
1326
|
-
}
|
1327
|
-
|
1328
|
-
/**
|
1329
|
-
* Stream static html to an element, where "static html" denotes "html
|
1330
|
-
* without scripts".
|
1331
|
-
*
|
1332
|
-
* This class maintains a *history of writes devoid of any attributes* or
|
1333
|
-
* "proxy history".
|
1334
|
-
*
|
1335
|
-
* Injecting the proxy history into a temporary div has no side-effects,
|
1336
|
-
* other than to create proxy elements for previously written elements.
|
1337
|
-
*
|
1338
|
-
* Given the `staticHtml` of a new write, a `tempDiv`'s innerHTML is set to
|
1339
|
-
* `proxy_history + staticHtml`.
|
1340
|
-
* The *structure* of `tempDiv`'s contents, (i.e., the placement of new nodes
|
1341
|
-
* beside or inside of proxy elements), reflects the DOM structure that would
|
1342
|
-
* have resulted if all writes had been squashed into a single write.
|
1343
|
-
*
|
1344
|
-
* For each descendent `node` of `tempDiv` whose parentNode is a *proxy*,
|
1345
|
-
* `node` is appended to the corresponding *real* element within the DOM.
|
1346
|
-
*
|
1347
|
-
* Proxy elements are mapped to *actual* elements in the DOM by injecting a
|
1348
|
-
* `data-id` attribute into each start tag in `staticHtml`.
|
1349
|
-
*
|
1350
|
-
*/
|
1351
|
-
export default class WriteStream {
|
1352
|
-
/**
|
1353
|
-
* Constructor.
|
1354
|
-
*
|
1355
|
-
* @param {Object} root The root element
|
1356
|
-
* @param {?Object} options The options
|
1357
|
-
*/
|
1358
|
-
constructor(root, options = <span class="branch-0 cbranch-no" title="branch not covered" >{}) {</span>
|
1359
|
-
this.root = root;
|
1360
|
-
this.options = options;
|
1361
|
-
this.doc = root.ownerDocument;
|
1362
|
-
t</span>his.win = this.doc.defaultView || <span class="branch-1 cbranch-no" title="branch not covered" >this.doc.parentWindow;
|
1363
|
-
this.parser = new HtmlParser('', {autoFix: options.autoFix});
|
1364
|
-
|
1365
|
-
// Actual elements by id.
|
1366
|
-
this.actuals = [root];
|
1367
|
-
|
1368
|
-
// Embodies the "structure" of what's been written so far,
|
1369
|
-
// devoid of attributes.
|
1370
|
-
this.proxyHistory = '';
|
1371
|
-
|
1372
|
-
// Create a proxy of the root element.
|
1373
|
-
this.proxyRoot = this.doc.createElement(root.nodeName);
|
1374
|
-
|
1375
|
-
this.scriptStack = [];
|
1376
|
-
this.writeQueue = [];
|
1377
|
-
|
1378
|
-
setData(this.proxyRoot, 'proxyof', 0);
|
1379
|
-
}
|
1380
|
-
|
1381
|
-
/**
|
1382
|
-
* Writes the given strings.
|
1383
|
-
*
|
1384
|
-
* @param {...String} str The strings to write
|
1385
|
-
*/
|
1386
|
-
write(...str) {
|
1387
|
-
this.writeQueue.push(...str);
|
1388
|
-
|
1389
|
-
// Process writes
|
1390
|
-
// When new script gets pushed or pending this will stop
|
1391
|
-
// because new writeQueue gets pushed
|
1392
|
-
while (!this.deferredRemote && this.writeQueue.length) {
|
1393
|
-
const arg = this.writeQueue.shift();
|
1394
|
-
|
1395
|
-
if (utils.isFunction(arg)) {
|
1396
|
-
this._callFunction(arg);
|
1397
|
-
} else {
|
1398
|
-
this._writeImpl(arg);
|
1399
|
-
}
|
1400
|
-
}
|
1401
|
-
}
|
1402
|
-
|
1403
|
-
/**
|
1404
|
-
* Calls the given function.
|
1405
|
-
*
|
1406
|
-
* @param {Function} fn The function to call
|
1407
|
-
* @private
|
1408
|
-
*/
|
1409
|
-
_callFunction(fn) {
|
1410
|
-
const tok = {type: 'function', value: fn.name || fn.toString()};
|
1411
|
-
this._onScriptStart(tok);
|
1412
|
-
fn.call(this.win, this.doc);
|
1413
|
-
this._onScriptDone(tok);
|
1414
|
-
}
|
1415
|
-
|
1416
|
-
/**
|
1417
|
-
* The write implementation
|
1418
|
-
*
|
1419
|
-
* @param {String} html The HTML to write.
|
1420
|
-
* @private
|
1421
|
-
*/
|
1422
|
-
_writeImpl(html) {
|
1423
|
-
this.parser.append(html);
|
1424
|
-
|
1425
|
-
let tok;
|
1426
|
-
let script;
|
1427
|
-
let style;
|
1428
|
-
const tokens = [];
|
1429
|
-
|
1430
|
-
// stop if we see a script token
|
1431
|
-
while ((tok = this.parser.readToken()) &&
|
1432
|
-
!(script = utils.isScript(tok)) &&
|
1433
|
-
!(style = utils.isStyle(tok))) {
|
1434
|
-
tok = this.options.beforeWriteToken(tok);
|
1435
|
-
|
1436
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (tok) {
|
1437
|
-
tokens.push(tok);
|
1438
|
-
}
|
1439
|
-
}
|
1440
|
-
|
1441
|
-
if (tokens.length > 0) {
|
1442
|
-
this._writeStaticTokens(tokens);
|
1443
|
-
}
|
1444
|
-
|
1445
|
-
if (script) {
|
1446
|
-
this._handleScriptToken(tok);
|
1447
|
-
}
|
1448
|
-
|
1449
|
-
if (style) {
|
1450
|
-
this._handleStyleToken(tok);
|
1451
|
-
}
|
1452
|
-
}
|
1453
|
-
|
1454
|
-
/**
|
1455
|
-
* Write a contiguous non-script tokens (a chunk)
|
1456
|
-
*
|
1457
|
-
* @param {Array<Object>} tokens The tokens
|
1458
|
-
* @returns {{tokens, raw, actual, proxy}|null}
|
1459
|
-
* @private
|
1460
|
-
*/
|
1461
|
-
_writeStaticTokens(tokens) {
|
1462
|
-
const chunk = this._buildChunk(tokens);
|
1463
|
-
|
1464
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!chunk.actual) {
|
1465
|
-
// e.g., no tokens, or a noscript that got ignored
|
1466
|
-
<span class="cstat-no" title="statement not covered" > r</span>eturn null;
|
1467
|
-
}
|
1468
|
-
|
1469
|
-
chunk.html = this.proxyHistory + chunk.actual;
|
1470
|
-
this.proxyHistory += chunk.proxy;
|
1471
|
-
this.proxyRoot.innerHTML = chunk.html;
|
1472
|
-
|
1473
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (DEBUG_CHUNK) {
|
1474
|
-
<span class="cstat-no" title="statement not covered" > c</span>hunk.proxyInnerHTML = this.proxyRoot.innerHTML;
|
1475
|
-
}
|
1476
|
-
|
1477
|
-
this._walkChunk();
|
1478
|
-
|
1479
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (DEBUG_CHUNK) {
|
1480
|
-
<span class="cstat-no" title="statement not covered" > c</span>hunk.actualInnerHTML = this.root.innerHTML;
|
1481
|
-
}
|
1482
|
-
|
1483
|
-
return chunk;
|
1484
|
-
}
|
1485
|
-
|
1486
|
-
/**
|
1487
|
-
* Build a chunk.
|
1488
|
-
*
|
1489
|
-
* @param {Array<Object>} tokens The tokens to use.
|
1490
|
-
* @returns {{tokens: *, raw: string, actual: string, proxy: string}}
|
1491
|
-
* @private
|
1492
|
-
*/
|
1493
|
-
_buildChunk(tokens) {
|
1494
|
-
let nextId = this.actuals.length;
|
1495
|
-
|
1496
|
-
// The raw html of this chunk.
|
1497
|
-
const raw = [];
|
1498
|
-
|
1499
|
-
// The html to create the nodes in the tokens (with id's injected).
|
1500
|
-
const actual = [];
|
1501
|
-
|
1502
|
-
// Html that can later be used to proxy the nodes in the tokens.
|
1503
|
-
const proxy = [];
|
1504
|
-
|
1505
|
-
const len = tokens.length;
|
1506
|
-
for (let i = 0; i < len; i++) {
|
1507
|
-
const tok = tokens[i];
|
1508
|
-
const tokenRaw = tok.toString();
|
1509
|
-
|
1510
|
-
raw.push(tokenRaw);
|
1511
|
-
|
1512
|
-
if (tok.attrs) { // tok.attrs <==> startTag or atomicTag or cursor
|
1513
|
-
// Ignore noscript tags. They are atomic, so we don't have to worry about children.
|
1514
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!(/^noscript$/i).test(tok.tagName)) {
|
1515
|
-
const id = nextId++;
|
1516
|
-
|
1517
|
-
// Actual: inject id attribute: replace '>' at end of start tag with id attribute + '>'
|
1518
|
-
actual.push(tokenRaw.replace(/(\/?>)/, ` ${BASEATTR}id=${id} $1`));
|
1519
|
-
|
1520
|
-
// Don't proxy scripts: they have no bearing on DOM structure.
|
1521
|
-
if (tok.attrs.id !== PROXY_SCRIPT && tok.attrs.id !== PROXY_STYLE) {
|
1522
|
-
// Proxy: strip all attributes and inject proxyof attribute
|
1523
|
-
proxy.push(
|
1524
|
-
// ignore atomic tags (e.g., style): they have no "structural" effect
|
1525
|
-
t</span>ok.type === 'atomicTag' ? <span class="branch-0 cbranch-no" title="branch not covered" >'' :
|
1526
|
-
`<${tok.tagName} ${BASEATTR}proxyof=${id}` + (tok.unary ? ' />' : '>')
|
1527
|
-
);
|
1528
|
-
}
|
1529
|
-
}
|
1530
|
-
} else {
|
1531
|
-
// Visit any other type of token
|
1532
|
-
// Actual: append.
|
1533
|
-
actual.push(tokenRaw);
|
1534
|
-
|
1535
|
-
// Proxy: append endTags. Ignore everything else.
|
1536
|
-
proxy.push(tok.type === 'endTag' ? tokenRaw : '');
|
1537
|
-
}
|
1538
|
-
}
|
1539
|
-
|
1540
|
-
return {
|
1541
|
-
tokens,
|
1542
|
-
raw: raw.join(''),
|
1543
|
-
actual: actual.join(''),
|
1544
|
-
proxy: proxy.join('')
|
1545
|
-
};
|
1546
|
-
}
|
1547
|
-
|
1548
|
-
/**
|
1549
|
-
* Walk the chunks.
|
1550
|
-
*
|
1551
|
-
* @private
|
1552
|
-
*/
|
1553
|
-
_walkChunk() {
|
1554
|
-
let node;
|
1555
|
-
const stack = [this.proxyRoot];
|
1556
|
-
|
1557
|
-
// use shift/unshift so that children are walked in document order
|
1558
|
-
|
1559
|
-
while (utils.existy(node = stack.shift())) {
|
1560
|
-
const isElement = node.nodeType === 1;
|
1561
|
-
const isProxy = isElement && getData(node, 'proxyof');
|
1562
|
-
|
1563
|
-
// Ignore proxies
|
1564
|
-
if (!isProxy) {
|
1565
|
-
if (isElement) {
|
1566
|
-
// New actual element: register it and remove the the id attr.
|
1567
|
-
this.actuals[getData(node, 'id')] = node;
|
1568
|
-
setData(node, 'id');
|
1569
|
-
}
|
1570
|
-
|
1571
|
-
// Is node's parent a proxy?
|
1572
|
-
const parentIsProxyOf = node.parentNode &&
|
1573
|
-
getData(node.parentNode, 'proxyof');
|
1574
|
-
if (parentIsProxyOf) {
|
1575
|
-
// Move node under actual parent.
|
1576
|
-
this.actuals[parentIsProxyOf].appendChild(node);
|
1577
|
-
}
|
1578
|
-
}
|
1579
|
-
|
1580
|
-
// prepend childNodes to stack
|
1581
|
-
stack.unshift.apply(stack, utils.toArray(node.childNodes));
|
1582
|
-
}
|
1583
|
-
}
|
1584
|
-
|
1585
|
-
/**
|
1586
|
-
* Handles Script tokens
|
1587
|
-
*
|
1588
|
-
* @param {Object} tok The token
|
1589
|
-
*/
|
1590
|
-
_handleScriptToken(tok) {
|
1591
|
-
const remainder = this.parser.clear();
|
1592
|
-
|
1593
|
-
if (remainder) {
|
1594
|
-
// Write remainder immediately behind this script.
|
1595
|
-
this.writeQueue.unshift(remainder);
|
1596
|
-
}
|
1597
|
-
|
1598
|
-
tok.src = tok.attrs.src || tok.attrs.SRC;
|
1599
|
-
|
1600
|
-
tok = this.options.beforeWriteToken(tok);
|
1601
|
-
if (!tok) {
|
1602
|
-
// User has removed this token
|
1603
|
-
return;
|
1604
|
-
}
|
1605
|
-
|
1606
|
-
if (tok.src && this.scriptStack.length) {
|
1607
|
-
// Defer this script until scriptStack is empty.
|
1608
|
-
// Assumption 1: This script will not start executing until
|
1609
|
-
// scriptStack is empty.
|
1610
|
-
this.deferredRemote = tok;
|
1611
|
-
} else {
|
1612
|
-
this._onScriptStart(tok);
|
1613
|
-
}
|
1614
|
-
|
1615
|
-
// Put the script node in the DOM.
|
1616
|
-
this._writeScriptToken(tok, () => {
|
1617
|
-
this._onScriptDone(tok);
|
1618
|
-
});
|
1619
|
-
}
|
1620
|
-
|
1621
|
-
/**
|
1622
|
-
* Handles style tokens
|
1623
|
-
*
|
1624
|
-
* @param {Object} tok The token
|
1625
|
-
*/
|
1626
|
-
_handleStyleToken(tok) {
|
1627
|
-
const remainder = this.parser.clear();
|
1628
|
-
|
1629
|
-
if (remainder) {
|
1630
|
-
// Write remainder immediately behind this style.
|
1631
|
-
this.writeQueue.unshift(remainder);
|
1632
|
-
}
|
1633
|
-
|
1634
|
-
tok.type = tok.attrs.type || tok.attrs.TYPE || 'text/css';
|
1635
|
-
|
1636
|
-
tok = this.options.beforeWriteToken(tok);
|
1637
|
-
|
1638
|
-
if (tok) {
|
1639
|
-
// Put the style node in the DOM.
|
1640
|
-
this._writeStyleToken(tok);
|
1641
|
-
}
|
1642
|
-
|
1643
|
-
if (remainder) {
|
1644
|
-
this.write();
|
1645
|
-
}
|
1646
|
-
}
|
1647
|
-
|
1648
|
-
/**
|
1649
|
-
* Build a style and insert it into the DOM.
|
1650
|
-
*
|
1651
|
-
* @param {Object} tok The token
|
1652
|
-
*/
|
1653
|
-
_writeStyleToken(tok) {
|
1654
|
-
const el = this._buildStyle(tok);
|
1655
|
-
|
1656
|
-
this._insertStyle(el);
|
1657
|
-
|
1658
|
-
// Set content
|
1659
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (tok.content) {
|
1660
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>i</span>f (el.styleSheet && <span class="branch-1 cbranch-no" title="branch not covered" >!el.sheet) {
|
1661
|
-
<span class="cstat-no" title="statement not covered" > e</span>l.styleSheet.cssText = tok.content;
|
1662
|
-
} else {
|
1663
|
-
el.appendChild(this.doc.createTextNode(tok.content));
|
1664
|
-
}
|
1665
|
-
}
|
1666
|
-
}
|
1667
|
-
|
1668
|
-
/**
|
1669
|
-
* Build a style element from an atomic style token.
|
1670
|
-
*
|
1671
|
-
* @param {Object} tok The token
|
1672
|
-
* @returns {Element}
|
1673
|
-
*/
|
1674
|
-
_buildStyle(tok) {
|
1675
|
-
const el = this.doc.createElement(tok.tagName);
|
1676
|
-
|
1677
|
-
el.setAttribute('type', tok.type);
|
1678
|
-
|
1679
|
-
// Set attributes
|
1680
|
-
utils.eachKey(tok.attrs, (name, value) => {
|
1681
|
-
el.setAttribute(name, value);
|
1682
|
-
});
|
1683
|
-
|
1684
|
-
return el;
|
1685
|
-
}
|
1686
|
-
|
1687
|
-
/**
|
1688
|
-
* Append a span to the stream. That span will act as a cursor
|
1689
|
-
* (i.e. insertion point) for the style.
|
1690
|
-
*
|
1691
|
-
* @param {String} id The ID of the span.
|
1692
|
-
* @private
|
1693
|
-
*/
|
1694
|
-
_insertSpan(id) {
|
1695
|
-
this._writeImpl(`<span id="${id}"/>`);
|
1696
|
-
|
1697
|
-
// Grab that span from the DOM.
|
1698
|
-
return this.doc.getElementById(id);
|
1699
|
-
}
|
1700
|
-
|
1701
|
-
/**
|
1702
|
-
* Insert style into DOM where it would naturally be written.
|
1703
|
-
*
|
1704
|
-
* @param {Object} el The element
|
1705
|
-
*/
|
1706
|
-
_insertStyle(el) {
|
1707
|
-
const cursor = this._insertSpan(PROXY_STYLE);
|
1708
|
-
|
1709
|
-
// Replace cursor with style.
|
1710
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (cursor) {
|
1711
|
-
cursor.parentNode.replaceChild(el, cursor);
|
1712
|
-
}
|
1713
|
-
}
|
1714
|
-
|
1715
|
-
/**
|
1716
|
-
* Insert script into DOM where it would naturally be written.
|
1717
|
-
*
|
1718
|
-
* @param {Object} el The element
|
1719
|
-
*/
|
1720
|
-
_insertScript(el) {
|
1721
|
-
const cursor = this._insertSpan(PROXY_SCRIPT);
|
1722
|
-
|
1723
|
-
// Replace cursor with script.
|
1724
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (cursor) {
|
1725
|
-
cursor.parentNode.replaceChild(el, cursor);
|
1726
|
-
}
|
1727
|
-
}
|
1728
|
-
|
1729
|
-
/**
|
1730
|
-
* Called when a script is started.
|
1731
|
-
*
|
1732
|
-
* @param {Object} tok The token
|
1733
|
-
* @private
|
1734
|
-
*/
|
1735
|
-
_onScriptStart(tok) {
|
1736
|
-
tok.outerWrites = this.writeQueue;
|
1737
|
-
this.writeQueue = [];
|
1738
|
-
this.scriptStack.unshift(tok);
|
1739
|
-
}
|
1740
|
-
|
1741
|
-
/**
|
1742
|
-
* Called when a script is done.
|
1743
|
-
*
|
1744
|
-
* @param {Object} tok The token
|
1745
|
-
* @private
|
1746
|
-
*/
|
1747
|
-
_onScriptDone(tok) {
|
1748
|
-
// Pop script and check nesting.
|
1749
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (tok !== this.scriptStack[0]) {
|
1750
|
-
<span class="cstat-no" title="statement not covered" > t</span>his.options.error({message: 'Bad script nesting or script finished twice'});
|
1751
|
-
<span class="cstat-no" title="statement not covered" > r</span>eturn;
|
1752
|
-
}
|
1753
|
-
|
1754
|
-
this.scriptStack.shift();
|
1755
|
-
|
1756
|
-
// Append outer writes to queue and process them.
|
1757
|
-
this.write.apply(this, tok.outerWrites);
|
1758
|
-
|
1759
|
-
// Check for pending remote
|
1760
|
-
|
1761
|
-
// Assumption 2: if remote_script1 writes remote_script2 then
|
1762
|
-
// the we notice remote_script1 finishes before remote_script2 starts.
|
1763
|
-
// I think this is equivalent to assumption 1
|
1764
|
-
if (!this.scriptStack.length && this.deferredRemote) {
|
1765
|
-
this._onScriptStart(this.deferredRemote);
|
1766
|
-
this.deferredRemote = null;
|
1767
|
-
}
|
1768
|
-
}
|
1769
|
-
|
1770
|
-
/**
|
1771
|
-
* Build a script and insert it into the DOM.
|
1772
|
-
* Done is called once script has executed.
|
1773
|
-
*
|
1774
|
-
* @param {Object} tok The token
|
1775
|
-
* @param {Function} done The callback when complete
|
1776
|
-
*/
|
1777
|
-
_writeScriptToken(tok, done) {
|
1778
|
-
const el = this._buildScript(tok);
|
1779
|
-
const asyncRelease = this._shouldRelease(el);
|
1780
|
-
const afterAsync = this.options.afterAsync;
|
1781
|
-
|
1782
|
-
if (tok.src) {
|
1783
|
-
// Fix for attribute "SRC" (capitalized). IE does not recognize it.
|
1784
|
-
el.src = tok.src;
|
1785
|
-
this._scriptLoadHandler(el, !asyncRelease ? () => {
|
1786
|
-
done();
|
1787
|
-
afterAsync();
|
1788
|
-
} : afterAsync);
|
1789
|
-
}
|
1790
|
-
|
1791
|
-
try {
|
1792
|
-
this._insertScript(el);
|
1793
|
-
if (!el.src || asyncRelease) {
|
1794
|
-
done();
|
1795
|
-
}
|
1796
|
-
} catch (e) {
|
1797
|
-
<span class="cstat-no" title="statement not covered" > t</span>his.options.error(e);
|
1798
|
-
<span class="cstat-no" title="statement not covered" > d</span>one();
|
1799
|
-
}
|
1800
|
-
}
|
1801
|
-
|
1802
|
-
/**
|
1803
|
-
* Build a script element from an atomic script token.
|
1804
|
-
*
|
1805
|
-
* @param {Object} tok The token
|
1806
|
-
* @returns {Element}
|
1807
|
-
*/
|
1808
|
-
_buildScript(tok) {
|
1809
|
-
const el = this.doc.createElement(tok.tagName);
|
1810
|
-
|
1811
|
-
// Set attributes
|
1812
|
-
utils.eachKey(tok.attrs, (name, value) => {
|
1813
|
-
el.setAttribute(name, value);
|
1814
|
-
});
|
1815
|
-
|
1816
|
-
// Set content
|
1817
|
-
if (tok.content) {
|
1818
|
-
el.text = tok.content;
|
1819
|
-
}
|
1820
|
-
|
1821
|
-
return el;
|
1822
|
-
}
|
1823
|
-
|
1824
|
-
/**
|
1825
|
-
* Setup the script load handler on an element.
|
1826
|
-
*
|
1827
|
-
* @param {Object} el The element
|
1828
|
-
* @param {Function} done The callback
|
1829
|
-
* @private
|
1830
|
-
*/
|
1831
|
-
_scriptLoadHandler(el, done) {
|
1832
|
-
function cleanup() {
|
1833
|
-
el = el.onload = el.onreadystatechange = el.onerror = null;
|
1834
|
-
}
|
1835
|
-
|
1836
|
-
const error = this.options.error;
|
1837
|
-
|
1838
|
-
function success() {
|
1839
|
-
cleanup();
|
1840
|
-
done();
|
1841
|
-
}
|
1842
|
-
|
1843
|
-
function failure(err) {
|
1844
|
-
cleanup();
|
1845
|
-
error(err);
|
1846
|
-
done();
|
1847
|
-
}
|
1848
|
-
|
1849
|
-
// Set handlers
|
1850
|
-
Object.assign(el, {
|
1851
|
-
onload: () => success(),
|
1852
|
-
|
1853
|
-
onreadystatechange: <span class="fstat-no" title="function not covered" >() => {</span>
|
1854
|
-
<span class="cstat-no" title="statement not covered" > if (/^(loaded|complete)$/.test(el.readyState)) {</span>
|
1855
|
-
<span class="cstat-no" title="statement not covered" > s</span>uccess();
|
1856
|
-
}
|
1857
|
-
},
|
1858
|
-
|
1859
|
-
onerror: () => failure({message: `remote script failed ${el.src}`})
|
1860
|
-
});
|
1861
|
-
}
|
1862
|
-
|
1863
|
-
/**
|
1864
|
-
* Determines whether to release.
|
1865
|
-
*
|
1866
|
-
* @param {Object} el The element
|
1867
|
-
* @returns {boolean}
|
1868
|
-
* @private
|
1869
|
-
*/
|
1870
|
-
_shouldRelease(el) {
|
1871
|
-
const isScript = (/^script$/i).test(el.nodeName);
|
1872
|
-
return !isScript || !!(this.options.releaseAsync && el.src && el.hasAttribute('async'));
|
1873
|
-
}
|
1874
|
-
|
1875
|
-
}
|
1876
|
-
|
1877
|
-
</pre></td></tr>
|
1878
|
-
</table></pre>
|
1879
|
-
<div class='push'></div><!-- for sticky footer -->
|
1880
|
-
</div><!-- /wrapper -->
|
1881
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
1882
|
-
Code coverage
|
1883
|
-
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Apr 27 2016 01:39:53 GMT+0000 (UTC)
|
1884
|
-
</div>
|
1885
|
-
</div>
|
1886
|
-
<script src="../prettify.js"></script>
|
1887
|
-
<script>
|
1888
|
-
window.onload = function () {
|
1889
|
-
if (typeof prettyPrint === 'function') {
|
1890
|
-
prettyPrint();
|
1891
|
-
}
|
1892
|
-
};
|
1893
|
-
</script>
|
1894
|
-
<script src="../sorter.js"></script>
|
1895
|
-
</body>
|
1896
|
-
</html>
|