PageRenderTime 54ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 1ms

/chat/node_modules/socket.io/node_modules/socket.io-client/coverage/lcov-report/socket.io-client/lib/socket.js.html

https://github.com/raghunat/suny-live
HTML | 1405 lines | 1369 code | 36 blank | 0 comment | 0 complexity | 846240e80690cf0b64c1ba03e2308b97 MD5 | raw file
Possible License(s): MIT, 0BSD, Apache-2.0, GPL-2.0
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <title>Code coverage report for socket.io-client/lib/socket.js</title>
  5. <meta charset="utf-8">
  6. <link rel="stylesheet" href="../../prettify.css">
  7. <style>
  8. body, html {
  9. margin:0; padding: 0;
  10. }
  11. body {
  12. font-family: Helvetica Neue, Helvetica,Arial;
  13. font-size: 10pt;
  14. }
  15. div.header, div.footer {
  16. background: #eee;
  17. padding: 1em;
  18. }
  19. div.header {
  20. z-index: 100;
  21. position: fixed;
  22. top: 0;
  23. border-bottom: 1px solid #666;
  24. width: 100%;
  25. }
  26. div.footer {
  27. border-top: 1px solid #666;
  28. }
  29. div.body {
  30. margin-top: 10em;
  31. }
  32. div.meta {
  33. font-size: 90%;
  34. text-align: center;
  35. }
  36. h1, h2, h3 {
  37. font-weight: normal;
  38. }
  39. h1 {
  40. font-size: 12pt;
  41. }
  42. h2 {
  43. font-size: 10pt;
  44. }
  45. pre {
  46. font-family: Consolas, Menlo, Monaco, monospace;
  47. margin: 0;
  48. padding: 0;
  49. line-height: 14px;
  50. font-size: 14px;
  51. -moz-tab-size: 2;
  52. -o-tab-size: 2;
  53. tab-size: 2;
  54. }
  55. div.path { font-size: 110%; }
  56. div.path a:link, div.path a:visited { color: #000; }
  57. table.coverage { border-collapse: collapse; margin:0; padding: 0 }
  58. table.coverage td {
  59. margin: 0;
  60. padding: 0;
  61. color: #111;
  62. vertical-align: top;
  63. }
  64. table.coverage td.line-count {
  65. width: 50px;
  66. text-align: right;
  67. padding-right: 5px;
  68. }
  69. table.coverage td.line-coverage {
  70. color: #777 !important;
  71. text-align: right;
  72. border-left: 1px solid #666;
  73. border-right: 1px solid #666;
  74. }
  75. table.coverage td.text {
  76. }
  77. table.coverage td span.cline-any {
  78. display: inline-block;
  79. padding: 0 5px;
  80. width: 40px;
  81. }
  82. table.coverage td span.cline-neutral {
  83. background: #eee;
  84. }
  85. table.coverage td span.cline-yes {
  86. background: #b5d592;
  87. color: #999;
  88. }
  89. table.coverage td span.cline-no {
  90. background: #fc8c84;
  91. }
  92. .cstat-yes { color: #111; }
  93. .cstat-no { background: #fc8c84; color: #111; }
  94. .fstat-no { background: #ffc520; color: #111 !important; }
  95. .cbranch-no { background: yellow !important; color: #111; }
  96. .cstat-skip { background: #ddd; color: #111; }
  97. .fstat-skip { background: #ddd; color: #111 !important; }
  98. .cbranch-skip { background: #ddd !important; color: #111; }
  99. .missing-if-branch {
  100. display: inline-block;
  101. margin-right: 10px;
  102. position: relative;
  103. padding: 0 4px;
  104. background: black;
  105. color: yellow;
  106. }
  107. .skip-if-branch {
  108. display: none;
  109. margin-right: 10px;
  110. position: relative;
  111. padding: 0 4px;
  112. background: #ccc;
  113. color: white;
  114. }
  115. .missing-if-branch .typ, .skip-if-branch .typ {
  116. color: inherit !important;
  117. }
  118. .entity, .metric { font-weight: bold; }
  119. .metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; }
  120. .metric small { font-size: 80%; font-weight: normal; color: #666; }
  121. div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; }
  122. div.coverage-summary td, div.coverage-summary table th { margin: 0; padding: 0.25em 1em; border-top: 1px solid #666; border-bottom: 1px solid #666; }
  123. div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; }
  124. div.coverage-summary th.file { border-right: none !important; }
  125. div.coverage-summary th.pic { border-left: none !important; text-align: right; }
  126. div.coverage-summary th.pct { border-right: none !important; }
  127. div.coverage-summary th.abs { border-left: none !important; text-align: right; }
  128. div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; }
  129. div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; }
  130. div.coverage-summary td.file { text-align: right; border-left: 1px solid #666; white-space: nowrap; }
  131. div.coverage-summary td.pic { min-width: 120px !important; }
  132. div.coverage-summary a:link { text-decoration: none; color: #000; }
  133. div.coverage-summary a:visited { text-decoration: none; color: #333; }
  134. div.coverage-summary a:hover { text-decoration: underline; }
  135. div.coverage-summary tfoot td { border-top: 1px solid #666; }
  136. div.coverage-summary .yui3-datatable-sort-indicator, div.coverage-summary .dummy-sort-indicator {
  137. height: 10px;
  138. width: 7px;
  139. display: inline-block;
  140. margin-left: 0.5em;
  141. }
  142. div.coverage-summary .yui3-datatable-sort-indicator {
  143. background: url("http://yui.yahooapis.com/3.6.0/build/datatable-sort/assets/skins/sam/sort-arrow-sprite.png") no-repeat scroll 0 0 transparent;
  144. }
  145. div.coverage-summary .yui3-datatable-sorted .yui3-datatable-sort-indicator {
  146. background-position: 0 -20px;
  147. }
  148. div.coverage-summary .yui3-datatable-sorted-desc .yui3-datatable-sort-indicator {
  149. background-position: 0 -10px;
  150. }
  151. .high { background: #b5d592 !important; }
  152. .medium { background: #ffe87c !important; }
  153. .low { background: #fc8c84 !important; }
  154. span.cover-fill, span.cover-empty {
  155. display:inline-block;
  156. border:1px solid #444;
  157. background: white;
  158. height: 12px;
  159. }
  160. span.cover-fill {
  161. background: #ccc;
  162. border-right: 1px solid #444;
  163. }
  164. span.cover-empty {
  165. background: white;
  166. border-left: none;
  167. }
  168. span.cover-full {
  169. border-right: none !important;
  170. }
  171. pre.prettyprint {
  172. border: none !important;
  173. padding: 0 !important;
  174. margin: 0 !important;
  175. }
  176. .com { color: #999 !important; }
  177. .ignore-none { color: #999; font-weight: normal; }
  178. </style>
  179. </head>
  180. <body>
  181. <div class="header low">
  182. <h1>Code coverage report for <span class="entity">socket.io-client/lib/socket.js</span></h1>
  183. <h2>
  184. Statements: <span class="metric">34.59% <small>(46 / 133)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  185. Branches: <span class="metric">9.09% <small>(3 / 33)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  186. Functions: <span class="metric">16.67% <small>(3 / 18)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  187. Lines: <span class="metric">35.43% <small>(45 / 127)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  188. Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp;
  189. </h2>
  190. <div class="path"><a href="../../index.html">All files</a> &#187; <a href="index.html">socket.io-client/lib/</a> &#187; socket.js</div>
  191. </div>
  192. <div class="body">
  193. <pre><table class="coverage">
  194. <tr><td class="line-count">1
  195. 2
  196. 3
  197. 4
  198. 5
  199. 6
  200. 7
  201. 8
  202. 9
  203. 10
  204. 11
  205. 12
  206. 13
  207. 14
  208. 15
  209. 16
  210. 17
  211. 18
  212. 19
  213. 20
  214. 21
  215. 22
  216. 23
  217. 24
  218. 25
  219. 26
  220. 27
  221. 28
  222. 29
  223. 30
  224. 31
  225. 32
  226. 33
  227. 34
  228. 35
  229. 36
  230. 37
  231. 38
  232. 39
  233. 40
  234. 41
  235. 42
  236. 43
  237. 44
  238. 45
  239. 46
  240. 47
  241. 48
  242. 49
  243. 50
  244. 51
  245. 52
  246. 53
  247. 54
  248. 55
  249. 56
  250. 57
  251. 58
  252. 59
  253. 60
  254. 61
  255. 62
  256. 63
  257. 64
  258. 65
  259. 66
  260. 67
  261. 68
  262. 69
  263. 70
  264. 71
  265. 72
  266. 73
  267. 74
  268. 75
  269. 76
  270. 77
  271. 78
  272. 79
  273. 80
  274. 81
  275. 82
  276. 83
  277. 84
  278. 85
  279. 86
  280. 87
  281. 88
  282. 89
  283. 90
  284. 91
  285. 92
  286. 93
  287. 94
  288. 95
  289. 96
  290. 97
  291. 98
  292. 99
  293. 100
  294. 101
  295. 102
  296. 103
  297. 104
  298. 105
  299. 106
  300. 107
  301. 108
  302. 109
  303. 110
  304. 111
  305. 112
  306. 113
  307. 114
  308. 115
  309. 116
  310. 117
  311. 118
  312. 119
  313. 120
  314. 121
  315. 122
  316. 123
  317. 124
  318. 125
  319. 126
  320. 127
  321. 128
  322. 129
  323. 130
  324. 131
  325. 132
  326. 133
  327. 134
  328. 135
  329. 136
  330. 137
  331. 138
  332. 139
  333. 140
  334. 141
  335. 142
  336. 143
  337. 144
  338. 145
  339. 146
  340. 147
  341. 148
  342. 149
  343. 150
  344. 151
  345. 152
  346. 153
  347. 154
  348. 155
  349. 156
  350. 157
  351. 158
  352. 159
  353. 160
  354. 161
  355. 162
  356. 163
  357. 164
  358. 165
  359. 166
  360. 167
  361. 168
  362. 169
  363. 170
  364. 171
  365. 172
  366. 173
  367. 174
  368. 175
  369. 176
  370. 177
  371. 178
  372. 179
  373. 180
  374. 181
  375. 182
  376. 183
  377. 184
  378. 185
  379. 186
  380. 187
  381. 188
  382. 189
  383. 190
  384. 191
  385. 192
  386. 193
  387. 194
  388. 195
  389. 196
  390. 197
  391. 198
  392. 199
  393. 200
  394. 201
  395. 202
  396. 203
  397. 204
  398. 205
  399. 206
  400. 207
  401. 208
  402. 209
  403. 210
  404. 211
  405. 212
  406. 213
  407. 214
  408. 215
  409. 216
  410. 217
  411. 218
  412. 219
  413. 220
  414. 221
  415. 222
  416. 223
  417. 224
  418. 225
  419. 226
  420. 227
  421. 228
  422. 229
  423. 230
  424. 231
  425. 232
  426. 233
  427. 234
  428. 235
  429. 236
  430. 237
  431. 238
  432. 239
  433. 240
  434. 241
  435. 242
  436. 243
  437. 244
  438. 245
  439. 246
  440. 247
  441. 248
  442. 249
  443. 250
  444. 251
  445. 252
  446. 253
  447. 254
  448. 255
  449. 256
  450. 257
  451. 258
  452. 259
  453. 260
  454. 261
  455. 262
  456. 263
  457. 264
  458. 265
  459. 266
  460. 267
  461. 268
  462. 269
  463. 270
  464. 271
  465. 272
  466. 273
  467. 274
  468. 275
  469. 276
  470. 277
  471. 278
  472. 279
  473. 280
  474. 281
  475. 282
  476. 283
  477. 284
  478. 285
  479. 286
  480. 287
  481. 288
  482. 289
  483. 290
  484. 291
  485. 292
  486. 293
  487. 294
  488. 295
  489. 296
  490. 297
  491. 298
  492. 299
  493. 300
  494. 301
  495. 302
  496. 303
  497. 304
  498. 305
  499. 306
  500. 307
  501. 308
  502. 309
  503. 310
  504. 311
  505. 312
  506. 313
  507. 314
  508. 315
  509. 316
  510. 317
  511. 318
  512. 319
  513. 320
  514. 321
  515. 322
  516. 323
  517. 324
  518. 325
  519. 326
  520. 327
  521. 328
  522. 329
  523. 330
  524. 331
  525. 332
  526. 333
  527. 334
  528. 335
  529. 336
  530. 337
  531. 338
  532. 339
  533. 340
  534. 341
  535. 342
  536. 343
  537. 344
  538. 345
  539. 346
  540. 347
  541. 348
  542. 349
  543. 350
  544. 351
  545. 352
  546. 353
  547. 354
  548. 355
  549. 356
  550. 357
  551. 358
  552. 359
  553. 360
  554. 361
  555. 362</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
  560. <span class="cline-any cline-yes">1</span>
  561. <span class="cline-any cline-yes">1</span>
  562. <span class="cline-any cline-yes">1</span>
  563. <span class="cline-any cline-yes">1</span>
  564. <span class="cline-any cline-yes">1</span>
  565. <span class="cline-any cline-yes">1</span>
  566. <span class="cline-any cline-yes">1</span>
  567. <span class="cline-any cline-yes">1</span>
  568. <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
  572. <span class="cline-any cline-neutral">&nbsp;</span>
  573. <span class="cline-any cline-yes">1</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-neutral">&nbsp;</span>
  577. <span class="cline-any cline-neutral">&nbsp;</span>
  578. <span class="cline-any cline-neutral">&nbsp;</span>
  579. <span class="cline-any cline-neutral">&nbsp;</span>
  580. <span class="cline-any cline-neutral">&nbsp;</span>
  581. <span class="cline-any cline-neutral">&nbsp;</span>
  582. <span class="cline-any cline-yes">1</span>
  583. <span class="cline-any cline-neutral">&nbsp;</span>
  584. <span class="cline-any cline-neutral">&nbsp;</span>
  585. <span class="cline-any cline-neutral">&nbsp;</span>
  586. <span class="cline-any cline-neutral">&nbsp;</span>
  587. <span class="cline-any cline-neutral">&nbsp;</span>
  588. <span class="cline-any cline-neutral">&nbsp;</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">1</span>
  593. <span class="cline-any cline-neutral">&nbsp;</span>
  594. <span class="cline-any cline-neutral">&nbsp;</span>
  595. <span class="cline-any cline-neutral">&nbsp;</span>
  596. <span class="cline-any cline-neutral">&nbsp;</span>
  597. <span class="cline-any cline-neutral">&nbsp;</span>
  598. <span class="cline-any cline-neutral">&nbsp;</span>
  599. <span class="cline-any cline-neutral">&nbsp;</span>
  600. <span class="cline-any cline-yes">1</span>
  601. <span class="cline-any cline-yes">5</span>
  602. <span class="cline-any cline-yes">5</span>
  603. <span class="cline-any cline-yes">5</span>
  604. <span class="cline-any cline-yes">5</span>
  605. <span class="cline-any cline-yes">5</span>
  606. <span class="cline-any cline-yes">5</span>
  607. <span class="cline-any cline-yes">5</span>
  608. <span class="cline-any cline-yes">5</span>
  609. <span class="cline-any cline-yes">5</span>
  610. <span class="cline-any cline-neutral">&nbsp;</span>
  611. <span class="cline-any cline-neutral">&nbsp;</span>
  612. <span class="cline-any cline-neutral">&nbsp;</span>
  613. <span class="cline-any cline-neutral">&nbsp;</span>
  614. <span class="cline-any cline-neutral">&nbsp;</span>
  615. <span class="cline-any cline-neutral">&nbsp;</span>
  616. <span class="cline-any cline-yes">1</span>
  617. <span class="cline-any cline-neutral">&nbsp;</span>
  618. <span class="cline-any cline-neutral">&nbsp;</span>
  619. <span class="cline-any cline-neutral">&nbsp;</span>
  620. <span class="cline-any cline-neutral">&nbsp;</span>
  621. <span class="cline-any cline-neutral">&nbsp;</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-yes">1</span>
  625. <span class="cline-any cline-neutral">&nbsp;</span>
  626. <span class="cline-any cline-yes">5</span>
  627. <span class="cline-any cline-yes">5</span>
  628. <span class="cline-any cline-yes">5</span>
  629. <span class="cline-any cline-yes">5</span>
  630. <span class="cline-any cline-neutral">&nbsp;</span>
  631. <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
  635. <span class="cline-any cline-yes">5</span>
  636. <span class="cline-any cline-yes">5</span>
  637. <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
  643. <span class="cline-any cline-neutral">&nbsp;</span>
  644. <span class="cline-any cline-neutral">&nbsp;</span>
  645. <span class="cline-any cline-neutral">&nbsp;</span>
  646. <span class="cline-any cline-yes">1</span>
  647. <span class="cline-any cline-no">&nbsp;</span>
  648. <span class="cline-any cline-no">&nbsp;</span>
  649. <span class="cline-any cline-no">&nbsp;</span>
  650. <span class="cline-any cline-no">&nbsp;</span>
  651. <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
  656. <span class="cline-any cline-neutral">&nbsp;</span>
  657. <span class="cline-any cline-neutral">&nbsp;</span>
  658. <span class="cline-any cline-neutral">&nbsp;</span>
  659. <span class="cline-any cline-neutral">&nbsp;</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-yes">1</span>
  663. <span class="cline-any cline-no">&nbsp;</span>
  664. <span class="cline-any cline-no">&nbsp;</span>
  665. <span class="cline-any cline-no">&nbsp;</span>
  666. <span class="cline-any cline-neutral">&nbsp;</span>
  667. <span class="cline-any cline-neutral">&nbsp;</span>
  668. <span class="cline-any cline-no">&nbsp;</span>
  669. <span class="cline-any cline-no">&nbsp;</span>
  670. <span class="cline-any cline-no">&nbsp;</span>
  671. <span class="cline-any cline-no">&nbsp;</span>
  672. <span class="cline-any cline-neutral">&nbsp;</span>
  673. <span class="cline-any cline-neutral">&nbsp;</span>
  674. <span class="cline-any cline-no">&nbsp;</span>
  675. <span class="cline-any cline-no">&nbsp;</span>
  676. <span class="cline-any cline-no">&nbsp;</span>
  677. <span class="cline-any cline-no">&nbsp;</span>
  678. <span class="cline-any cline-neutral">&nbsp;</span>
  679. <span class="cline-any cline-neutral">&nbsp;</span>
  680. <span class="cline-any cline-no">&nbsp;</span>
  681. <span class="cline-any cline-neutral">&nbsp;</span>
  682. <span class="cline-any cline-no">&nbsp;</span>
  683. <span class="cline-any cline-neutral">&nbsp;</span>
  684. <span class="cline-any cline-neutral">&nbsp;</span>
  685. <span class="cline-any cline-neutral">&nbsp;</span>
  686. <span class="cline-any cline-neutral">&nbsp;</span>
  687. <span class="cline-any cline-neutral">&nbsp;</span>
  688. <span class="cline-any cline-neutral">&nbsp;</span>
  689. <span class="cline-any cline-neutral">&nbsp;</span>
  690. <span class="cline-any cline-neutral">&nbsp;</span>
  691. <span class="cline-any cline-neutral">&nbsp;</span>
  692. <span class="cline-any cline-yes">1</span>
  693. <span class="cline-any cline-no">&nbsp;</span>
  694. <span class="cline-any cline-no">&nbsp;</span>
  695. <span class="cline-any cline-neutral">&nbsp;</span>
  696. <span class="cline-any cline-neutral">&nbsp;</span>
  697. <span class="cline-any cline-neutral">&nbsp;</span>
  698. <span class="cline-any cline-neutral">&nbsp;</span>
  699. <span class="cline-any cline-neutral">&nbsp;</span>
  700. <span class="cline-any cline-neutral">&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-yes">1</span>
  705. <span class="cline-any cline-no">&nbsp;</span>
  706. <span class="cline-any cline-neutral">&nbsp;</span>
  707. <span class="cline-any cline-neutral">&nbsp;</span>
  708. <span class="cline-any cline-neutral">&nbsp;</span>
  709. <span class="cline-any cline-neutral">&nbsp;</span>
  710. <span class="cline-any cline-neutral">&nbsp;</span>
  711. <span class="cline-any cline-neutral">&nbsp;</span>
  712. <span class="cline-any cline-neutral">&nbsp;</span>
  713. <span class="cline-any cline-neutral">&nbsp;</span>
  714. <span class="cline-any cline-yes">1</span>
  715. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  719. <span class="cline-any cline-no">&nbsp;</span>
  720. <span class="cline-any cline-neutral">&nbsp;</span>
  721. <span class="cline-any cline-neutral">&nbsp;</span>
  722. <span class="cline-any cline-neutral">&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-yes">1</span>
  731. <span class="cline-any cline-no">&nbsp;</span>
  732. <span class="cline-any cline-no">&nbsp;</span>
  733. <span class="cline-any cline-no">&nbsp;</span>
  734. <span class="cline-any cline-no">&nbsp;</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-neutral">&nbsp;</span>
  743. <span class="cline-any cline-neutral">&nbsp;</span>
  744. <span class="cline-any cline-yes">1</span>
  745. <span class="cline-any cline-no">&nbsp;</span>
  746. <span class="cline-any cline-neutral">&nbsp;</span>
  747. <span class="cline-any cline-no">&nbsp;</span>
  748. <span class="cline-any cline-neutral">&nbsp;</span>
  749. <span class="cline-any cline-no">&nbsp;</span>
  750. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  754. <span class="cline-any cline-no">&nbsp;</span>
  755. <span class="cline-any cline-neutral">&nbsp;</span>
  756. <span class="cline-any cline-neutral">&nbsp;</span>
  757. <span class="cline-any cline-no">&nbsp;</span>
  758. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  762. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  766. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  770. <span class="cline-any cline-no">&nbsp;</span>
  771. <span class="cline-any cline-neutral">&nbsp;</span>
  772. <span class="cline-any cline-neutral">&nbsp;</span>
  773. <span class="cline-any cline-no">&nbsp;</span>
  774. <span class="cline-any cline-no">&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-yes">1</span>
  786. <span class="cline-any cline-no">&nbsp;</span>
  787. <span class="cline-any cline-no">&nbsp;</span>
  788. <span class="cline-any cline-neutral">&nbsp;</span>
  789. <span class="cline-any cline-no">&nbsp;</span>
  790. <span class="cline-any cline-no">&nbsp;</span>
  791. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  795. <span class="cline-any cline-no">&nbsp;</span>
  796. <span class="cline-any cline-neutral">&nbsp;</span>
  797. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  801. <span class="cline-any cline-neutral">&nbsp;</span>
  802. <span class="cline-any cline-neutral">&nbsp;</span>
  803. <span class="cline-any cline-neutral">&nbsp;</span>
  804. <span class="cline-any cline-neutral">&nbsp;</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-yes">1</span>
  808. <span class="cline-any cline-no">&nbsp;</span>
  809. <span class="cline-any cline-no">&nbsp;</span>
  810. <span class="cline-any cline-no">&nbsp;</span>
  811. <span class="cline-any cline-neutral">&nbsp;</span>
  812. <span class="cline-any cline-no">&nbsp;</span>
  813. <span class="cline-any cline-no">&nbsp;</span>
  814. <span class="cline-any cline-no">&nbsp;</span>
  815. <span class="cline-any cline-no">&nbsp;</span>
  816. <span class="cline-any cline-neutral">&nbsp;</span>
  817. <span class="cline-any cline-no">&nbsp;</span>
  818. <span class="cline-any cline-no">&nbsp;</span>
  819. <span class="cline-any cline-neutral">&nbsp;</span>
  820. <span class="cline-any cline-neutral">&nbsp;</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>
  825. <span class="cline-any cline-neutral">&nbsp;</span>
  826. <span class="cline-any cline-neutral">&nbsp;</span>
  827. <span class="cline-any cline-neutral">&nbsp;</span>
  828. <span class="cline-any cline-neutral">&nbsp;</span>
  829. <span class="cline-any cline-neutral">&nbsp;</span>
  830. <span class="cline-any cline-neutral">&nbsp;</span>
  831. <span class="cline-any cline-neutral">&nbsp;</span>
  832. <span class="cline-any cline-neutral">&nbsp;</span>
  833. <span class="cline-any cline-yes">1</span>
  834. <span class="cline-any cline-no">&nbsp;</span>
  835. <span class="cline-any cline-no">&nbsp;</span>
  836. <span class="cline-any cline-no">&nbsp;</span>
  837. <span class="cline-any cline-no">&nbsp;</span>
  838. <span class="cline-any cline-neutral">&nbsp;</span>
  839. <span class="cline-any cline-neutral">&nbsp;</span>
  840. <span class="cline-any cline-neutral">&nbsp;</span>
  841. <span class="cline-any cline-neutral">&nbsp;</span>
  842. <span class="cline-any cline-neutral">&nbsp;</span>
  843. <span class="cline-any cline-neutral">&nbsp;</span>
  844. <span class="cline-any cline-neutral">&nbsp;</span>
  845. <span class="cline-any cline-neutral">&nbsp;</span>
  846. <span class="cline-any cline-yes">1</span>
  847. <span class="cline-any cline-no">&nbsp;</span>
  848. <span class="cline-any cline-no">&nbsp;</span>
  849. <span class="cline-any cline-no">&nbsp;</span>
  850. <span class="cline-any cline-no">&nbsp;</span>
  851. <span class="cline-any cline-neutral">&nbsp;</span>
  852. <span class="cline-any cline-neutral">&nbsp;</span>
  853. <span class="cline-any cline-neutral">&nbsp;</span>
  854. <span class="cline-any cline-neutral">&nbsp;</span>
  855. <span class="cline-any cline-neutral">&nbsp;</span>
  856. <span class="cline-any cline-neutral">&nbsp;</span>
  857. <span class="cline-any cline-neutral">&nbsp;</span>
  858. <span class="cline-any cline-neutral">&nbsp;</span>
  859. <span class="cline-any cline-yes">1</span>
  860. <span class="cline-any cline-no">&nbsp;</span>
  861. <span class="cline-any cline-no">&nbsp;</span>
  862. <span class="cline-any cline-neutral">&nbsp;</span>
  863. <span class="cline-any cline-no">&nbsp;</span>
  864. <span class="cline-any cline-neutral">&nbsp;</span>
  865. <span class="cline-any cline-neutral">&nbsp;</span>
  866. <span class="cline-any cline-neutral">&nbsp;</span>
  867. <span class="cline-any cline-neutral">&nbsp;</span>
  868. <span class="cline-any cline-neutral">&nbsp;</span>
  869. <span class="cline-any cline-neutral">&nbsp;</span>
  870. <span class="cline-any cline-neutral">&nbsp;</span>
  871. <span class="cline-any cline-neutral">&nbsp;</span>
  872. <span class="cline-any cline-yes">1</span>
  873. <span class="cline-any cline-no">&nbsp;</span>
  874. <span class="cline-any cline-no">&nbsp;</span>
  875. <span class="cline-any cline-no">&nbsp;</span>
  876. <span class="cline-any cline-neutral">&nbsp;</span>
  877. <span class="cline-any cline-neutral">&nbsp;</span>
  878. <span class="cline-any cline-neutral">&nbsp;</span>
  879. <span class="cline-any cline-neutral">&nbsp;</span>
  880. <span class="cline-any cline-neutral">&nbsp;</span>
  881. <span class="cline-any cline-neutral">&nbsp;</span>
  882. <span class="cline-any cline-neutral">&nbsp;</span>
  883. <span class="cline-any cline-neutral">&nbsp;</span>
  884. <span class="cline-any cline-neutral">&nbsp;</span>
  885. <span class="cline-any cline-neutral">&nbsp;</span>
  886. <span class="cline-any cline-yes">1</span>
  887. <span class="cline-any cline-neutral">&nbsp;</span>
  888. <span class="cline-any cline-no">&nbsp;</span>
  889. <span class="cline-any cline-no">&nbsp;</span>
  890. <span class="cline-any cline-neutral">&nbsp;</span>
  891. <span class="cline-any cline-neutral">&nbsp;</span>
  892. <span class="cline-any cline-no">&nbsp;</span>
  893. <span class="cline-any cline-neutral">&nbsp;</span>
  894. <span class="cline-any cline-neutral">&nbsp;</span>
  895. <span class="cline-any cline-neutral">&nbsp;</span>
  896. <span class="cline-any cline-neutral">&nbsp;</span>
  897. <span class="cline-any cline-neutral">&nbsp;</span>
  898. <span class="cline-any cline-neutral">&nbsp;</span>
  899. <span class="cline-any cline-neutral">&nbsp;</span>
  900. <span class="cline-any cline-neutral">&nbsp;</span>
  901. <span class="cline-any cline-neutral">&nbsp;</span>
  902. <span class="cline-any cline-yes">1</span>
  903. <span class="cline-any cline-neutral">&nbsp;</span>
  904. <span class="cline-any cline-yes">2</span>
  905. <span class="cline-any cline-neutral">&nbsp;</span>
  906. <span class="cline-any cline-no">&nbsp;</span>
  907. <span class="cline-any cline-no">&nbsp;</span>
  908. <span class="cline-any cline-neutral">&nbsp;</span>
  909. <span class="cline-any cline-neutral">&nbsp;</span>
  910. <span class="cline-any cline-no">&nbsp;</span>
  911. <span class="cline-any cline-neutral">&nbsp;</span>
  912. <span class="cline-any cline-neutral">&nbsp;</span>
  913. <span class="cline-any cline-no">&nbsp;</span>
  914. <span class="cline-any cline-no">&nbsp;</span>
  915. <span class="cline-any cline-neutral">&nbsp;</span>
  916. <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&nbsp;
  917. /**
  918. * Module dependencies.
  919. */
  920. &nbsp;
  921. var parser = require('socket.io-parser');
  922. var Emitter = require('emitter');
  923. var toArray = require('to-array');
  924. var on = require('./on');
  925. var bind = require('bind');
  926. var debug = require('debug')('socket.io-client:socket');
  927. var hasBin = require('has-binary-data');
  928. var indexOf = require('indexof');
  929. &nbsp;
  930. /**
  931. * Module exports.
  932. */
  933. &nbsp;
  934. module.exports = exports = Socket;
  935. &nbsp;
  936. /**
  937. * Internal events (blacklisted).
  938. * These events can't be emitted by the user.
  939. *
  940. * @api private
  941. */
  942. &nbsp;
  943. var events = {
  944. connect: 1,
  945. disconnect: 1,
  946. error: 1
  947. };
  948. &nbsp;
  949. /**
  950. * Shortcut to `Emitter#emit`.
  951. */
  952. &nbsp;
  953. var emit = Emitter.prototype.emit;
  954. &nbsp;
  955. /**
  956. * `Socket` constructor.
  957. *
  958. * @api public
  959. */
  960. &nbsp;
  961. function Socket(io, nsp){
  962. this.io = io;
  963. this.nsp = nsp;
  964. this.json = this; // compat
  965. this.ids = 0;
  966. this.acks = {};
  967. this.open();
  968. this.buffer = [];
  969. this.connected = false;
  970. this.disconnected = true;
  971. }
  972. &nbsp;
  973. /**
  974. * Mix in `Emitter`.
  975. */
  976. &nbsp;
  977. Emitter(Socket.prototype);
  978. &nbsp;
  979. /**
  980. * Called upon engine `open`.
  981. *
  982. * @api private
  983. */
  984. &nbsp;
  985. Socket.prototype.open =
  986. Socket.prototype.connect = function(){
  987. <span class="missing-if-branch" title="if path not taken" >I</span>if (this.connected) <span class="cstat-no" title="statement not covered" >return this;</span>
  988. var io = this.io;
  989. io.open(); // ensure open
  990. this.subs = [
  991. on(io, 'open', bind(this, 'onopen')),
  992. on(io, 'error', bind(this, 'onerror')),
  993. on(io, 'packet', bind(this, 'onpacket')),
  994. on(io, 'close', bind(this, 'onclose'))
  995. ];
  996. <span class="missing-if-branch" title="if path not taken" >I</span>if ('open' == this.io.readyState) <span class="cstat-no" title="statement not covered" >this.onopen();</span>
  997. return this;
  998. };
  999. &nbsp;
  1000. /**
  1001. * Sends a `message` event.
  1002. *
  1003. * @return {Socket} self
  1004. * @api public
  1005. */
  1006. &nbsp;
  1007. Socket.prototype.send = <span class="fstat-no" title="function not covered" >function(){</span>
  1008. <span class="cstat-no" title="statement not covered" > var args = toArray(arguments);</span>
  1009. <span class="cstat-no" title="statement not covered" > args.unshift('message');</span>
  1010. <span class="cstat-no" title="statement not covered" > this.emit.apply(this, args);</span>
  1011. <span class="cstat-no" title="statement not covered" > return this;</span>
  1012. };
  1013. &nbsp;
  1014. /**
  1015. * Override `emit`.
  1016. * If the event is in `events`, it's emitted normally.
  1017. *
  1018. * @param {String} event name
  1019. * @return {Socket} self
  1020. * @api public
  1021. */
  1022. &nbsp;
  1023. Socket.prototype.emit = <span class="fstat-no" title="function not covered" >function(ev){</span>
  1024. <span class="cstat-no" title="statement not covered" > if (events.hasOwnProperty(ev)) {</span>
  1025. <span class="cstat-no" title="statement not covered" > emit.apply(this, arguments);</span>
  1026. <span class="cstat-no" title="statement not covered" > return this;</span>
  1027. }
  1028. &nbsp;
  1029. <span class="cstat-no" title="statement not covered" > var args = toArray(arguments);</span>
  1030. <span class="cstat-no" title="statement not covered" > var parserType = parser.EVENT; </span>// default
  1031. <span class="cstat-no" title="statement not covered" > if (hasBin(args)) { <span class="cstat-no" title="statement not covered" >parserType = parser.BINARY_EVENT; </span>} </span>// binary
  1032. <span class="cstat-no" title="statement not covered" > var packet = { type: parserType, data: args };</span>
  1033. &nbsp;
  1034. // event ack callback
  1035. <span class="cstat-no" title="statement not covered" > if ('function' == typeof args[args.length - 1]) {</span>
  1036. <span class="cstat-no" title="statement not covered" > debug('emitting packet with ack id %d', this.ids);</span>
  1037. <span class="cstat-no" title="statement not covered" > this.acks[this.ids] = args.pop();</span>
  1038. <span class="cstat-no" title="statement not covered" > packet.id = this.ids++;</span>
  1039. }
  1040. &nbsp;
  1041. <span class="cstat-no" title="statement not covered" > this.packet(packet);</span>
  1042. &nbsp;
  1043. <span class="cstat-no" title="statement not covered" > return this;</span>
  1044. };
  1045. &nbsp;
  1046. /**
  1047. * Sends a packet.
  1048. *
  1049. * @param {Object} packet
  1050. * @api private
  1051. */
  1052. &nbsp;
  1053. Socket.prototype.packet = <span class="fstat-no" title="function not covered" >function(packet){</span>
  1054. <span class="cstat-no" title="statement not covered" > packet.nsp = this.nsp;</span>
  1055. <span class="cstat-no" title="statement not covered" > this.io.packet(packet);</span>
  1056. };
  1057. &nbsp;
  1058. /**
  1059. * Called upon `error`.
  1060. *
  1061. * @param {Object} data
  1062. * @api private
  1063. */
  1064. &nbsp;
  1065. Socket.prototype.onerror = <span class="fstat-no" title="function not covered" >function(data){</span>
  1066. <span class="cstat-no" title="statement not covered" > this.emit('error', data);</span>
  1067. };
  1068. &nbsp;
  1069. /**
  1070. * "Opens" the socket.
  1071. *
  1072. * @api private
  1073. */
  1074. &nbsp;
  1075. Socket.prototype.onopen = <span class="fstat-no" title="function not covered" >function(){</span>
  1076. <span class="cstat-no" title="statement not covered" > debug('transport is open - connecting');</span>
  1077. &nbsp;
  1078. // write connect packet if necessary
  1079. <span class="cstat-no" title="statement not covered" > if ('/' != this.nsp) {</span>
  1080. <span class="cstat-no" title="statement not covered" > this.packet({ type: parser.CONNECT });</span>
  1081. }
  1082. };
  1083. &nbsp;
  1084. /**
  1085. * Called upon engine `close`.
  1086. *
  1087. * @param {String} reason
  1088. * @api private
  1089. */
  1090. &nbsp;
  1091. Socket.prototype.onclose = <span class="fstat-no" title="function not covered" >function(reason){</span>
  1092. <span class="cstat-no" title="statement not covered" > debug('close (%s)', reason);</span>
  1093. <span class="cstat-no" title="statement not covered" > this.connected = false;</span>
  1094. <span class="cstat-no" title="statement not covered" > this.disconnected = true;</span>
  1095. <span class="cstat-no" title="statement not covered" > this.emit('disconnect', reason);</span>
  1096. };
  1097. &nbsp;
  1098. /**
  1099. * Called with socket packet.
  1100. *
  1101. * @param {Object} packet
  1102. * @api private
  1103. */
  1104. &nbsp;
  1105. Socket.prototype.onpacket = <span class="fstat-no" title="function not covered" >function(packet){</span>
  1106. <span class="cstat-no" title="statement not covered" > if (packet.nsp != this.nsp) <span class="cstat-no" title="statement not covered" >return;</span></span>
  1107. &nbsp;
  1108. <span class="cstat-no" title="statement not covered" > switch (packet.type) {</span>
  1109. case parser.CONNECT:
  1110. <span class="cstat-no" title="statement not covered" > this.onconnect();</span>
  1111. <span class="cstat-no" title="statement not covered" > break;</span>
  1112. &nbsp;
  1113. case parser.EVENT:
  1114. <span class="cstat-no" title="statement not covered" > this.onevent(packet);</span>
  1115. <span class="cstat-no" title="statement not covered" > break;</span>
  1116. &nbsp;
  1117. case parser.BINARY_EVENT:
  1118. <span class="cstat-no" title="statement not covered" > this.onevent(packet);</span>
  1119. <span class="cstat-no" title="statement not covered" > break;</span>
  1120. &nbsp;
  1121. case parser.ACK:
  1122. <span class="cstat-no" title="statement not covered" > this.onack(packet);</span>
  1123. <span class="cstat-no" title="statement not covered" > break;</span>
  1124. &nbsp;
  1125. case parser.BINARY_ACK:
  1126. <span class="cstat-no" title="statement not covered" > this.onack(packet);</span>
  1127. <span class="cstat-no" title="statement not covered" > break;</span>
  1128. &nbsp;
  1129. case parser.DISCONNECT:
  1130. <span class="cstat-no" title="statement not covered" > this.ondisconnect();</span>
  1131. <span class="cstat-no" title="statement not covered" > break;</span>
  1132. &nbsp;
  1133. case parser.ERROR:
  1134. <span class="cstat-no" title="statement not covered" > this.emit('error', packet.data);</span>
  1135. <span class="cstat-no" title="statement not covered" > break;</span>
  1136. }
  1137. };
  1138. &nbsp;
  1139. /**
  1140. * Called upon a server event.
  1141. *
  1142. * @param {Object} packet
  1143. * @api private
  1144. */
  1145. &nbsp;
  1146. Socket.prototype.onevent = <span class="fstat-no" title="function not covered" >function(packet){</span>
  1147. <span class="cstat-no" title="statement not covered" > var args = packet.data || [];</span>
  1148. <span class="cstat-no" title="statement not covered" > debug('emitting event %j', args);</span>
  1149. &nbsp;
  1150. <span class="cstat-no" title="statement not covered" > if (null != packet.id) {</span>
  1151. <span class="cstat-no" title="statement not covered" > debug('attaching ack callback to event');</span>
  1152. <span class="cstat-no" title="statement not covered" > args.push(this.ack(packet.id));</span>
  1153. }
  1154. &nbsp;
  1155. <span class="cstat-no" title="statement not covered" > if (this.connected) {</span>
  1156. <span class="cstat-no" title="statement not covered" > emit.apply(this, args);</span>
  1157. } else {
  1158. <span class="cstat-no" title="statement not covered" > this.buffer.push(args);</span>
  1159. }
  1160. };
  1161. &nbsp;
  1162. /**
  1163. * Produces an ack callback to emit with an event.
  1164. *
  1165. * @api private
  1166. */
  1167. &nbsp;
  1168. Socket.prototype.ack = <span class="fstat-no" title="function not covered" >function(id){</span>
  1169. <span class="cstat-no" title="statement not covered" > var self = this;</span>
  1170. <span class="cstat-no" title="statement not covered" > var sent = false;</span>
  1171. <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >function(){</span></span>
  1172. // prevent double callbacks
  1173. <span class="cstat-no" title="statement not covered" > if (sent) <span class="cstat-no" title="statement not covered" >return;</span></span>
  1174. <span class="cstat-no" title="statement not covered" > sent = true;</span>
  1175. <span class="cstat-no" title="statement not covered" > var args = toArray(arguments);</span>
  1176. <span class="cstat-no" title="statement not covered" > debug('sending ack %j', args);</span>
  1177. &nbsp;
  1178. <span class="cstat-no" title="statement not covered" > var type = hasBin(args) ? parser.BINARY_ACK : parser.ACK;</span>
  1179. <span class="cstat-no" title="statement not covered" > self.packet({</span>
  1180. type: type,
  1181. id: id,
  1182. data: args
  1183. });
  1184. };
  1185. };
  1186. &nbsp;
  1187. /**
  1188. * Called upon a server acknowlegement.
  1189. *
  1190. * @param {Object} packet
  1191. * @api private
  1192. */
  1193. &nbsp;
  1194. Socket.prototype.onack = <span class="fstat-no" title="function not covered" >function(packet){</span>
  1195. <span class="cstat-no" title="statement not covered" > debug('calling ack %s with %j', packet.id, packet.data);</span>
  1196. <span class="cstat-no" title="statement not covered" > var fn = this.acks[packet.id];</span>
  1197. <span class="cstat-no" title="statement not covered" > fn.apply(this, packet.data);</span>
  1198. <span class="cstat-no" title="statement not covered" > delete this.acks[packet.id];</span>
  1199. };
  1200. &nbsp;
  1201. /**
  1202. * Called upon server connect.
  1203. *
  1204. * @api private
  1205. */
  1206. &nbsp;
  1207. Socket.prototype.onconnect = <span class="fstat-no" title="function not covered" >function(){</span>
  1208. <span class="cstat-no" title="statement not covered" > this.connected = true;</span>
  1209. <span class="cstat-no" title="statement not covered" > this.disconnected = false;</span>
  1210. <span class="cstat-no" title="statement not covered" > this.emit('connect');</span>
  1211. <span class="cstat-no" title="statement not covered" > this.emitBuffered();</span>
  1212. };
  1213. &nbsp;
  1214. /**
  1215. * Emit buffered events.
  1216. *
  1217. * @api private
  1218. */
  1219. &nbsp;
  1220. Socket.prototype.emitBuffered = <span class="fstat-no" title="function not covered" >function(){</span>
  1221. <span class="cstat-no" title="statement not covered" > for (var i = 0; i &lt; this.buffer.length; i++) {</span>
  1222. <span class="cstat-no" title="statement not covered" > emit.apply(this, this.buffer[i]);</span>
  1223. }
  1224. <span class="cstat-no" title="statement not covered" > this.buffer = [];</span>
  1225. };
  1226. &nbsp;
  1227. /**
  1228. * Called upon server disconnect.
  1229. *
  1230. * @api private
  1231. */
  1232. &nbsp;
  1233. Socket.prototype.ondisconnect = <span class="fstat-no" title="function not covered" >function(){</span>
  1234. <span class="cstat-no" title="statement not covered" > debug('server disconnect (%s)', this.nsp);</span>
  1235. <span class="cstat-no" title="statement not covered" > this.destroy();</span>
  1236. <span class="cstat-no" title="statement not covered" > this.onclose('io server disconnect');</span>
  1237. };
  1238. &nbsp;
  1239. /**
  1240. * Called upon forced client/server side disconnections,
  1241. * this method ensures the manager stops tracking us and
  1242. * that reconnections don't get triggered for this.
  1243. *
  1244. * @api private.
  1245. */
  1246. &nbsp;
  1247. Socket.prototype.destroy = <span class="fstat-no" title="function not covered" >function(){</span>
  1248. // clean subscriptions to avoid reconnections
  1249. <span class="cstat-no" title="statement not covered" > for (var i = 0; i &lt; this.subs.length; i++) {</span>
  1250. <span class="cstat-no" title="statement not covered" > this.subs[i].destroy();</span>
  1251. }
  1252. &nbsp;
  1253. <span class="cstat-no" title="statement not covered" > this.io.destroy(this);</span>
  1254. };
  1255. &nbsp;
  1256. /**
  1257. * Disconnects the socket manually.
  1258. *
  1259. * @return {Socket} self
  1260. * @api public
  1261. */
  1262. &nbsp;
  1263. Socket.prototype.close =
  1264. Socket.prototype.disconnect = function(){
  1265. <span class="missing-if-branch" title="else path not taken" >E</span>if (!this.connected) return this;
  1266. &nbsp;
  1267. <span class="cstat-no" title="statement not covered" > debug('performing disconnect (%s)', this.nsp);</span>
  1268. <span class="cstat-no" title="statement not covered" > this.packet({ type: parser.DISCONNECT });</span>
  1269. &nbsp;
  1270. // remove socket from pool
  1271. <span class="cstat-no" title="statement not covered" > this.destroy();</span>
  1272. &nbsp;
  1273. // fire events
  1274. <span class="cstat-no" title="statement not covered" > this.onclose('io client disconnect');</span>
  1275. <span class="cstat-no" title="statement not covered" > return this;</span>
  1276. };
  1277. &nbsp;</pre></td></tr>
  1278. </table></pre>
  1279. </div>
  1280. <div class="footer">
  1281. <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sat May 31 2014 14:57:59 GMT-0700 (PDT)</div>
  1282. </div>
  1283. <script src="../../prettify.js"></script>
  1284. <script src="http://yui.yahooapis.com/3.6.0/build/yui/yui-min.js"></script>
  1285. <script>
  1286. YUI().use('datatable', function (Y) {
  1287. var formatters = {
  1288. pct: function (o) {
  1289. o.className += o.record.get('classes')[o.column.key];
  1290. try {
  1291. return o.value.toFixed(2) + '%';
  1292. } catch (ex) { return o.value + '%'; }
  1293. },
  1294. html: function (o) {
  1295. o.className += o.record.get('classes')[o.column.key];
  1296. return o.record.get(o.column.key + '_html');
  1297. }
  1298. },
  1299. defaultFormatter = function (o) {
  1300. o.className += o.record.get('classes')[o.column.key];
  1301. return o.value;
  1302. };
  1303. function getColumns(theadNode) {
  1304. var colNodes = theadNode.all('tr th'),
  1305. cols = [],
  1306. col;
  1307. colNodes.each(function (colNode) {
  1308. col = {
  1309. key: colNode.getAttribute('data-col'),
  1310. label: colNode.get('innerHTML') || ' ',
  1311. sortable: !colNode.getAttribute('data-nosort'),
  1312. className: colNode.getAttribute('class'),
  1313. type: colNode.getAttribute('data-type'),
  1314. allowHTML: colNode.getAttribute('data-html') === 'true' || colNode.getAttribute('data-fmt') === 'html'
  1315. };
  1316. col.formatter = formatters[colNode.getAttribute('data-fmt')] || defaultFormatter;
  1317. cols.push(col);
  1318. });
  1319. return cols;
  1320. }
  1321. function getRowData(trNode, cols) {
  1322. var tdNodes = trNode.all('td'),
  1323. i,
  1324. row = { classes: {} },
  1325. node,
  1326. name;
  1327. for (i = 0; i < cols.length; i += 1) {
  1328. name = cols[i].key;
  1329. node = tdNodes.item(i);
  1330. row[name] = node.getAttribute('data-value') || node.get('innerHTML');
  1331. row[name + '_html'] = node.get('innerHTML');
  1332. row.classes[name] = node.getAttribute('class');
  1333. //Y.log('Name: ' + name + '; Value: ' + row[name]);
  1334. if (cols[i].type === 'number') { row[name] = row[name] * 1; }
  1335. }
  1336. //Y.log(row);
  1337. return row;
  1338. }
  1339. function getData(tbodyNode, cols) {
  1340. var data = [];
  1341. tbodyNode.all('tr').each(function (trNode) {
  1342. data.push(getRowData(trNode, cols));
  1343. });
  1344. return data;
  1345. }
  1346. function replaceTable(node) {
  1347. if (!node) { return; }
  1348. var cols = getColumns(node.one('thead')),
  1349. data = getData(node.one('tbody'), cols),
  1350. table,
  1351. parent = node.get('parentNode');
  1352. table = new Y.DataTable({
  1353. columns: cols,
  1354. data: data,
  1355. sortBy: 'file'
  1356. });
  1357. parent.set('innerHTML', '');
  1358. table.render(parent);
  1359. }
  1360. Y.on('domready', function () {
  1361. replaceTable(Y.one('div.coverage-summary table'));
  1362. if (typeof prettyPrint === 'function') {
  1363. prettyPrint();
  1364. }
  1365. });
  1366. });
  1367. </script>
  1368. </body>
  1369. </html>