You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1028 lines
31 KiB

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <title>Code coverage report for utf8.js/utf8.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. .missing-if-branch {
  97. display: inline-block;
  98. margin-right: 10px;
  99. position: relative;
  100. padding: 0 4px;
  101. background: black;
  102. color: yellow;
  103. xtext-decoration: line-through;
  104. }
  105. .missing-if-branch .typ {
  106. color: inherit !important;
  107. }
  108. .entity, .metric { font-weight: bold; }
  109. .metric { display: inline-block; border: 1px solid #333; padding: 0.3em; background: white; }
  110. .metric small { font-size: 80%; font-weight: normal; color: #666; }
  111. div.coverage-summary table { border-collapse: collapse; margin: 3em; font-size: 110%; }
  112. 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; }
  113. div.coverage-summary th { text-align: left; border: 1px solid #666; background: #eee; font-weight: normal; }
  114. div.coverage-summary th.file { border-right: none !important; }
  115. div.coverage-summary th.pic { border-left: none !important; text-align: right; }
  116. div.coverage-summary th.pct { border-right: none !important; }
  117. div.coverage-summary th.abs { border-left: none !important; text-align: right; }
  118. div.coverage-summary td.pct { text-align: right; border-left: 1px solid #666; }
  119. div.coverage-summary td.abs { text-align: right; font-size: 90%; color: #444; border-right: 1px solid #666; }
  120. div.coverage-summary td.file { text-align: right; border-left: 1px solid #666; white-space: nowrap; }
  121. div.coverage-summary td.pic { min-width: 120px !important; }
  122. div.coverage-summary a:link { text-decoration: none; color: #000; }
  123. div.coverage-summary a:visited { text-decoration: none; color: #333; }
  124. div.coverage-summary a:hover { text-decoration: underline; }
  125. div.coverage-summary tfoot td { border-top: 1px solid #666; }
  126. div.coverage-summary .yui3-datatable-sort-indicator, div.coverage-summary .dummy-sort-indicator {
  127. height: 10px;
  128. width: 7px;
  129. display: inline-block;
  130. margin-left: 0.5em;
  131. }
  132. div.coverage-summary .yui3-datatable-sort-indicator {
  133. 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;
  134. }
  135. div.coverage-summary .yui3-datatable-sorted .yui3-datatable-sort-indicator {
  136. background-position: 0 -20px;
  137. }
  138. div.coverage-summary .yui3-datatable-sorted-desc .yui3-datatable-sort-indicator {
  139. background-position: 0 -10px;
  140. }
  141. .high { background: #b5d592 !important; }
  142. .medium { background: #ffe87c !important; }
  143. .low { background: #fc8c84 !important; }
  144. span.cover-fill, span.cover-empty {
  145. display:inline-block;
  146. border:1px solid #444;
  147. background: white;
  148. height: 12px;
  149. }
  150. span.cover-fill {
  151. background: #ccc;
  152. border-right: 1px solid #444;
  153. }
  154. span.cover-empty {
  155. background: white;
  156. border-left: none;
  157. }
  158. span.cover-full {
  159. border-right: none !important;
  160. }
  161. pre.prettyprint {
  162. border: none !important;
  163. padding: 0 !important;
  164. margin: 0 !important;
  165. }
  166. .com { color: #999 !important; }
  167. </style>
  168. </head>
  169. <body>
  170. <div class="header high">
  171. <h1>Code coverage report for <span class="entity">utf8.js/utf8.js</span></h1>
  172. <h2>
  173. Statements: <span class="metric">92.31% <small>(120 / 130)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  174. Branches: <span class="metric">78.79% <small>(52 / 66)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  175. Functions: <span class="metric">90% <small>(9 / 10)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  176. Lines: <span class="metric">92.31% <small>(120 / 130)</small></span> &nbsp;&nbsp;&nbsp;&nbsp;
  177. </h2>
  178. <div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">utf8.js/</a> &#187; utf8.js</div>
  179. </div>
  180. <div class="body">
  181. <pre><table class="coverage">
  182. <tr><td class="line-count">1
  183. 2
  184. 3
  185. 4
  186. 5
  187. 6
  188. 7
  189. 8
  190. 9
  191. 10
  192. 11
  193. 12
  194. 13
  195. 14
  196. 15
  197. 16
  198. 17
  199. 18
  200. 19
  201. 20
  202. 21
  203. 22
  204. 23
  205. 24
  206. 25
  207. 26
  208. 27
  209. 28
  210. 29
  211. 30
  212. 31
  213. 32
  214. 33
  215. 34
  216. 35
  217. 36
  218. 37
  219. 38
  220. 39
  221. 40
  222. 41
  223. 42
  224. 43
  225. 44
  226. 45
  227. 46
  228. 47
  229. 48
  230. 49
  231. 50
  232. 51
  233. 52
  234. 53
  235. 54
  236. 55
  237. 56
  238. 57
  239. 58
  240. 59
  241. 60
  242. 61
  243. 62
  244. 63
  245. 64
  246. 65
  247. 66
  248. 67
  249. 68
  250. 69
  251. 70
  252. 71
  253. 72
  254. 73
  255. 74
  256. 75
  257. 76
  258. 77
  259. 78
  260. 79
  261. 80
  262. 81
  263. 82
  264. 83
  265. 84
  266. 85
  267. 86
  268. 87
  269. 88
  270. 89
  271. 90
  272. 91
  273. 92
  274. 93
  275. 94
  276. 95
  277. 96
  278. 97
  279. 98
  280. 99
  281. 100
  282. 101
  283. 102
  284. 103
  285. 104
  286. 105
  287. 106
  288. 107
  289. 108
  290. 109
  291. 110
  292. 111
  293. 112
  294. 113
  295. 114
  296. 115
  297. 116
  298. 117
  299. 118
  300. 119
  301. 120
  302. 121
  303. 122
  304. 123
  305. 124
  306. 125
  307. 126
  308. 127
  309. 128
  310. 129
  311. 130
  312. 131
  313. 132
  314. 133
  315. 134
  316. 135
  317. 136
  318. 137
  319. 138
  320. 139
  321. 140
  322. 141
  323. 142
  324. 143
  325. 144
  326. 145
  327. 146
  328. 147
  329. 148
  330. 149
  331. 150
  332. 151
  333. 152
  334. 153
  335. 154
  336. 155
  337. 156
  338. 157
  339. 158
  340. 159
  341. 160
  342. 161
  343. 162
  344. 163
  345. 164
  346. 165
  347. 166
  348. 167
  349. 168
  350. 169
  351. 170
  352. 171
  353. 172
  354. 173
  355. 174
  356. 175
  357. 176
  358. 177
  359. 178
  360. 179
  361. 180
  362. 181
  363. 182
  364. 183
  365. 184
  366. 185
  367. 186
  368. 187
  369. 188
  370. 189
  371. 190
  372. 191
  373. 192
  374. 193
  375. 194
  376. 195
  377. 196
  378. 197
  379. 198
  380. 199
  381. 200
  382. 201
  383. 202
  384. 203
  385. 204
  386. 205
  387. 206
  388. 207
  389. 208
  390. 209
  391. 210
  392. 211
  393. 212
  394. 213
  395. 214
  396. 215
  397. 216
  398. 217
  399. 218
  400. 219
  401. 220
  402. 221
  403. 222
  404. 223
  405. 224
  406. 225
  407. 226
  408. 227
  409. 228
  410. 229
  411. 230
  412. 231
  413. 232
  414. 233
  415. 234
  416. 235
  417. 236
  418. 237
  419. 238
  420. 239
  421. 240
  422. 241
  423. 242</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span>
  424. <span class="cline-any cline-yes">1</span>
  425. <span class="cline-any cline-neutral">&nbsp;</span>
  426. <span class="cline-any cline-neutral">&nbsp;</span>
  427. <span class="cline-any cline-yes">1</span>
  428. <span class="cline-any cline-neutral">&nbsp;</span>
  429. <span class="cline-any cline-neutral">&nbsp;</span>
  430. <span class="cline-any cline-yes">1</span>
  431. <span class="cline-any cline-neutral">&nbsp;</span>
  432. <span class="cline-any cline-neutral">&nbsp;</span>
  433. <span class="cline-any cline-neutral">&nbsp;</span>
  434. <span class="cline-any cline-neutral">&nbsp;</span>
  435. <span class="cline-any cline-yes">1</span>
  436. <span class="cline-any cline-yes">1</span>
  437. <span class="cline-any cline-yes">1</span>
  438. <span class="cline-any cline-neutral">&nbsp;</span>
  439. <span class="cline-any cline-neutral">&nbsp;</span>
  440. <span class="cline-any cline-neutral">&nbsp;</span>
  441. <span class="cline-any cline-neutral">&nbsp;</span>
  442. <span class="cline-any cline-yes">1</span>
  443. <span class="cline-any cline-neutral">&nbsp;</span>
  444. <span class="cline-any cline-neutral">&nbsp;</span>
  445. <span class="cline-any cline-yes">1</span>
  446. <span class="cline-any cline-yes">52</span>
  447. <span class="cline-any cline-yes">52</span>
  448. <span class="cline-any cline-yes">52</span>
  449. <span class="cline-any cline-yes">52</span>
  450. <span class="cline-any cline-yes">52</span>
  451. <span class="cline-any cline-yes">52</span>
  452. <span class="cline-any cline-yes">128</span>
  453. <span class="cline-any cline-yes">128</span>
  454. <span class="cline-any cline-neutral">&nbsp;</span>
  455. <span class="cline-any cline-yes">8</span>
  456. <span class="cline-any cline-yes">8</span>
  457. <span class="cline-any cline-yes">5</span>
  458. <span class="cline-any cline-neutral">&nbsp;</span>
  459. <span class="cline-any cline-neutral">&nbsp;</span>
  460. <span class="cline-any cline-neutral">&nbsp;</span>
  461. <span class="cline-any cline-yes">3</span>
  462. <span class="cline-any cline-yes">3</span>
  463. <span class="cline-any cline-neutral">&nbsp;</span>
  464. <span class="cline-any cline-neutral">&nbsp;</span>
  465. <span class="cline-any cline-yes">120</span>
  466. <span class="cline-any cline-neutral">&nbsp;</span>
  467. <span class="cline-any cline-neutral">&nbsp;</span>
  468. <span class="cline-any cline-yes">52</span>
  469. <span class="cline-any cline-neutral">&nbsp;</span>
  470. <span class="cline-any cline-neutral">&nbsp;</span>
  471. <span class="cline-any cline-neutral">&nbsp;</span>
  472. <span class="cline-any cline-yes">1</span>
  473. <span class="cline-any cline-yes">24</span>
  474. <span class="cline-any cline-yes">24</span>
  475. <span class="cline-any cline-yes">24</span>
  476. <span class="cline-any cline-yes">24</span>
  477. <span class="cline-any cline-yes">24</span>
  478. <span class="cline-any cline-yes">32</span>
  479. <span class="cline-any cline-yes">32</span>
  480. <span class="cline-any cline-yes">5</span>
  481. <span class="cline-any cline-yes">5</span>
  482. <span class="cline-any cline-yes">5</span>
  483. <span class="cline-any cline-neutral">&nbsp;</span>
  484. <span class="cline-any cline-yes">32</span>
  485. <span class="cline-any cline-neutral">&nbsp;</span>
  486. <span class="cline-any cline-yes">24</span>
  487. <span class="cline-any cline-neutral">&nbsp;</span>
  488. <span class="cline-any cline-neutral">&nbsp;</span>
  489. <span class="cline-any cline-neutral">&nbsp;</span>
  490. <span class="cline-any cline-neutral">&nbsp;</span>
  491. <span class="cline-any cline-neutral">&nbsp;</span>
  492. <span class="cline-any cline-yes">1</span>
  493. <span class="cline-any cline-yes">29</span>
  494. <span class="cline-any cline-neutral">&nbsp;</span>
  495. <span class="cline-any cline-neutral">&nbsp;</span>
  496. <span class="cline-any cline-yes">1</span>
  497. <span class="cline-any cline-yes">32</span>
  498. <span class="cline-any cline-yes">5</span>
  499. <span class="cline-any cline-neutral">&nbsp;</span>
  500. <span class="cline-any cline-yes">27</span>
  501. <span class="cline-any cline-yes">27</span>
  502. <span class="cline-any cline-yes">3</span>
  503. <span class="cline-any cline-neutral">&nbsp;</span>
  504. <span class="cline-any cline-yes">24</span>
  505. <span class="cline-any cline-yes">19</span>
  506. <span class="cline-any cline-yes">19</span>
  507. <span class="cline-any cline-neutral">&nbsp;</span>
  508. <span class="cline-any cline-yes">5</span>
  509. <span class="cline-any cline-yes">5</span>
  510. <span class="cline-any cline-yes">5</span>
  511. <span class="cline-any cline-yes">5</span>
  512. <span class="cline-any cline-neutral">&nbsp;</span>
  513. <span class="cline-any cline-yes">27</span>
  514. <span class="cline-any cline-yes">27</span>
  515. <span class="cline-any cline-neutral">&nbsp;</span>
  516. <span class="cline-any cline-neutral">&nbsp;</span>
  517. <span class="cline-any cline-yes">1</span>
  518. <span class="cline-any cline-yes">24</span>
  519. <span class="cline-any cline-neutral">&nbsp;</span>
  520. <span class="cline-any cline-neutral">&nbsp;</span>
  521. <span class="cline-any cline-neutral">&nbsp;</span>
  522. <span class="cline-any cline-neutral">&nbsp;</span>
  523. <span class="cline-any cline-neutral">&nbsp;</span>
  524. <span class="cline-any cline-yes">24</span>
  525. <span class="cline-any cline-yes">24</span>
  526. <span class="cline-any cline-yes">24</span>
  527. <span class="cline-any cline-yes">24</span>
  528. <span class="cline-any cline-yes">24</span>
  529. <span class="cline-any cline-yes">32</span>
  530. <span class="cline-any cline-yes">32</span>
  531. <span class="cline-any cline-neutral">&nbsp;</span>
  532. <span class="cline-any cline-yes">24</span>
  533. <span class="cline-any cline-neutral">&nbsp;</span>
  534. <span class="cline-any cline-neutral">&nbsp;</span>
  535. <span class="cline-any cline-neutral">&nbsp;</span>
  536. <span class="cline-any cline-neutral">&nbsp;</span>
  537. <span class="cline-any cline-neutral">&nbsp;</span>
  538. <span class="cline-any cline-yes">1</span>
  539. <span class="cline-any cline-yes">60</span>
  540. <span class="cline-any cline-yes">1</span>
  541. <span class="cline-any cline-neutral">&nbsp;</span>
  542. <span class="cline-any cline-neutral">&nbsp;</span>
  543. <span class="cline-any cline-yes">59</span>
  544. <span class="cline-any cline-yes">59</span>
  545. <span class="cline-any cline-neutral">&nbsp;</span>
  546. <span class="cline-any cline-yes">59</span>
  547. <span class="cline-any cline-yes">57</span>
  548. <span class="cline-any cline-neutral">&nbsp;</span>
  549. <span class="cline-any cline-neutral">&nbsp;</span>
  550. <span class="cline-any cline-neutral">&nbsp;</span>
  551. <span class="cline-any cline-yes">2</span>
  552. <span class="cline-any cline-neutral">&nbsp;</span>
  553. <span class="cline-any cline-neutral">&nbsp;</span>
  554. <span class="cline-any cline-yes">1</span>
  555. <span class="cline-any cline-yes">60</span>
  556. <span class="cline-any cline-yes">60</span>
  557. <span class="cline-any cline-yes">60</span>
  558. <span class="cline-any cline-yes">60</span>
  559. <span class="cline-any cline-yes">60</span>
  560. <span class="cline-any cline-neutral">&nbsp;</span>
  561. <span class="cline-any cline-yes">60</span>
  562. <span class="cline-any cline-no">&nbsp;</span>
  563. <span class="cline-any cline-neutral">&nbsp;</span>
  564. <span class="cline-any cline-neutral">&nbsp;</span>
  565. <span class="cline-any cline-yes">60</span>
  566. <span class="cline-any cline-yes">24</span>
  567. <span class="cline-any cline-neutral">&nbsp;</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-yes">36</span>
  571. <span class="cline-any cline-yes">36</span>
  572. <span class="cline-any cline-neutral">&nbsp;</span>
  573. <span class="cline-any cline-neutral">&nbsp;</span>
  574. <span class="cline-any cline-yes">36</span>
  575. <span class="cline-any cline-yes">5</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-yes">31</span>
  580. <span class="cline-any cline-yes">4</span>
  581. <span class="cline-any cline-yes">3</span>
  582. <span class="cline-any cline-yes">3</span>
  583. <span class="cline-any cline-yes">3</span>
  584. <span class="cline-any cline-neutral">&nbsp;</span>
  585. <span class="cline-any cline-no">&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-yes">27</span>
  591. <span class="cline-any cline-yes">20</span>
  592. <span class="cline-any cline-yes">19</span>
  593. <span class="cline-any cline-yes">19</span>
  594. <span class="cline-any cline-yes">19</span>
  595. <span class="cline-any cline-yes">19</span>
  596. <span class="cline-any cline-neutral">&nbsp;</span>
  597. <span class="cline-any cline-no">&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-neutral">&nbsp;</span>
  601. <span class="cline-any cline-neutral">&nbsp;</span>
  602. <span class="cline-any cline-yes">7</span>
  603. <span class="cline-any cline-yes">6</span>
  604. <span class="cline-any cline-yes">6</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-neutral">&nbsp;</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-yes">1</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-yes">1</span>
  618. <span class="cline-any cline-yes">1</span>
  619. <span class="cline-any cline-yes">1</span>
  620. <span class="cline-any cline-yes">28</span>
  621. <span class="cline-any cline-yes">28</span>
  622. <span class="cline-any cline-yes">28</span>
  623. <span class="cline-any cline-yes">28</span>
  624. <span class="cline-any cline-yes">28</span>
  625. <span class="cline-any cline-yes">28</span>
  626. <span class="cline-any cline-yes">32</span>
  627. <span class="cline-any cline-neutral">&nbsp;</span>
  628. <span class="cline-any cline-yes">24</span>
  629. <span class="cline-any cline-neutral">&nbsp;</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-yes">1</span>
  634. <span class="cline-any cline-neutral">&nbsp;</span>
  635. <span class="cline-any cline-neutral">&nbsp;</span>
  636. <span class="cline-any cline-neutral">&nbsp;</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-yes">1</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-no">&nbsp;</span>
  647. <span class="cline-any cline-no">&nbsp;</span>
  648. <span class="cline-any cline-neutral">&nbsp;</span>
  649. <span class="cline-any cline-yes">1</span>
  650. <span class="cline-any cline-yes">1</span>
  651. <span class="cline-any cline-yes">1</span>
  652. <span class="cline-any cline-neutral">&nbsp;</span>
  653. <span class="cline-any cline-no">&nbsp;</span>
  654. <span class="cline-any cline-no">&nbsp;</span>
  655. <span class="cline-any cline-no">&nbsp;</span>
  656. <span class="cline-any cline-no">&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-no">&nbsp;</span>
  661. <span class="cline-any cline-neutral">&nbsp;</span>
  662. <span class="cline-any cline-neutral">&nbsp;</span>
  663. <span class="cline-any cline-neutral">&nbsp;</span>
  664. <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*! http://mths.be/utf8js v2.0.0 by @mathias */
  665. ;(function(root) {
  666. &nbsp;
  667. // Detect free variables `exports`
  668. var freeExports = typeof exports == 'object' &amp;&amp; exports;
  669. &nbsp;
  670. // Detect free variable `module`
  671. var freeModule = typeof module == 'object' &amp;&amp; module &amp;&amp;
  672. module.exports == freeExports &amp;&amp; module;
  673. &nbsp;
  674. // Detect free variable `global`, from Node.js or Browserified code,
  675. // and use it as `root`
  676. var freeGlobal = typeof global == 'object' &amp;&amp; global;
  677. <span class="missing-if-branch" title="else path not taken"" >E</span>if (freeGlobal.global === freeGlobal || <span class="branch-1 cbranch-no" title="branch not covered" >freeGlobal.window === freeGlobal)</span> {
  678. root = freeGlobal;
  679. }
  680. &nbsp;
  681. /*--------------------------------------------------------------------------*/
  682. &nbsp;
  683. var stringFromCharCode = String.fromCharCode;
  684. &nbsp;
  685. // Taken from http://mths.be/punycode
  686. function ucs2decode(string) {
  687. var output = [];
  688. var counter = 0;
  689. var length = string.length;
  690. var value;
  691. var extra;
  692. while (counter &lt; length) {
  693. value = string.charCodeAt(counter++);
  694. if (value &gt;= 0xD800 &amp;&amp; value &lt;= 0xDBFF &amp;&amp; counter &lt; length) {
  695. // high surrogate, and there is a next character
  696. extra = string.charCodeAt(counter++);
  697. if ((extra &amp; 0xFC00) == 0xDC00) { // low surrogate
  698. output.push(((value &amp; 0x3FF) &lt;&lt; 10) + (extra &amp; 0x3FF) + 0x10000);
  699. } else {
  700. // unmatched surrogate; only append this code unit, in case the next
  701. // code unit is the high surrogate of a surrogate pair
  702. output.push(value);
  703. counter--;
  704. }
  705. } else {
  706. output.push(value);
  707. }
  708. }
  709. return output;
  710. }
  711. &nbsp;
  712. // Taken from http://mths.be/punycode
  713. function ucs2encode(array) {
  714. var length = array.length;
  715. var index = -1;
  716. var value;
  717. var output = '';
  718. while (++index &lt; length) {
  719. value = array[index];
  720. if (value &gt; 0xFFFF) {
  721. value -= 0x10000;
  722. output += stringFromCharCode(value &gt;&gt;&gt; 10 &amp; 0x3FF | 0xD800);
  723. value = 0xDC00 | value &amp; 0x3FF;
  724. }
  725. output += stringFromCharCode(value);
  726. }
  727. return output;
  728. }
  729. &nbsp;
  730. /*--------------------------------------------------------------------------*/
  731. &nbsp;
  732. // https://github.com/php/php-src/blob/master/ext/mbstring/oniguruma/enc/utf8.c
  733. function createByte(codePoint, shift) {
  734. return stringFromCharCode(((codePoint &gt;&gt; shift) &amp; 0x3F) | 0x80);
  735. }
  736. &nbsp;
  737. function encodeCodePoint(codePoint) {
  738. if ((codePoint &amp; 0xFFFFFF80) == 0) { // 1-byte sequence
  739. return stringFromCharCode(codePoint);
  740. }
  741. var symbol = '';
  742. if ((codePoint &amp; 0xFFFFF800) == 0) { // 2-byte sequence
  743. symbol = stringFromCharCode(((codePoint &gt;&gt; 6) &amp; 0x1F) | 0xC0);
  744. }
  745. else if ((codePoint &amp; 0xFFFF0000) == 0) { // 3-byte sequence
  746. symbol = stringFromCharCode(((codePoint &gt;&gt; 12) &amp; 0x0F) | 0xE0);
  747. symbol += createByte(codePoint, 6);
  748. }
  749. else <span class="missing-if-branch" title="else path not taken"" >E</span>if ((codePoint &amp; 0xFFE00000) == 0) { // 4-byte sequence
  750. symbol = stringFromCharCode(((codePoint &gt;&gt; 18) &amp; 0x07) | 0xF0);
  751. symbol += createByte(codePoint, 12);
  752. symbol += createByte(codePoint, 6);
  753. }
  754. symbol += stringFromCharCode((codePoint &amp; 0x3F) | 0x80);
  755. return symbol;
  756. }
  757. &nbsp;
  758. function utf8encode(string) {
  759. var codePoints = ucs2decode(string);
  760. &nbsp;
  761. // console.log(JSON.stringify(codePoints.map(function(x) {
  762. // return 'U+' + x.toString(16).toUpperCase();
  763. // })));
  764. &nbsp;
  765. var length = codePoints.length;
  766. var index = -1;
  767. var codePoint;
  768. var byteString = '';
  769. while (++index &lt; length) {
  770. codePoint = codePoints[index];
  771. byteString += encodeCodePoint(codePoint);
  772. }
  773. return byteString;
  774. }
  775. &nbsp;
  776. /*--------------------------------------------------------------------------*/
  777. &nbsp;
  778. // https://github.com/php/php-src/blob/master/ext/json/utf8_decode.c
  779. function readContinuationByte() {
  780. if (byteIndex &gt;= byteCount) {
  781. throw Error('Invalid byte index');
  782. }
  783. &nbsp;
  784. var continuationByte = byteArray[byteIndex] &amp; 0xFF;
  785. byteIndex++;
  786. &nbsp;
  787. if ((continuationByte &amp; 0xC0) == 0x80) {
  788. return continuationByte &amp; 0x3F;
  789. }
  790. &nbsp;
  791. // If we end up here, it’s not a continuation byte
  792. throw Error('Invalid continuation byte');
  793. }
  794. &nbsp;
  795. function decodeSymbol() {
  796. var byte1;
  797. var byte2;
  798. var byte3;
  799. var byte4;
  800. var codePoint;
  801. &nbsp;
  802. <span class="missing-if-branch" title="if path not taken"" >I</span>if (byteIndex &gt; byteCount) {
  803. <span class="cstat-no" title="statement not covered" > throw Error('Invalid byte index');</span>
  804. }
  805. &nbsp;
  806. if (byteIndex == byteCount) {
  807. return false;
  808. }
  809. &nbsp;
  810. // Read first byte
  811. byte1 = byteArray[byteIndex] &amp; 0xFF;
  812. byteIndex++;
  813. &nbsp;
  814. // 1-byte sequence (no continuation bytes)
  815. if ((byte1 &amp; 0x80) == 0) {
  816. return byte1;
  817. }
  818. &nbsp;
  819. // 2-byte sequence
  820. if ((byte1 &amp; 0xE0) == 0xC0) {
  821. var byte2 = readContinuationByte();
  822. codePoint = ((byte1 &amp; 0x1F) &lt;&lt; 6) | byte2;
  823. <span class="missing-if-branch" title="else path not taken"" >E</span>if (codePoint &gt;= 0x80) {
  824. return codePoint;
  825. } else {
  826. <span class="cstat-no" title="statement not covered" > throw Error('Invalid continuation byte');</span>
  827. }
  828. }
  829. &nbsp;
  830. // 3-byte sequence (may include unpaired surrogates)
  831. if ((byte1 &amp; 0xF0) == 0xE0) {
  832. byte2 = readContinuationByte();
  833. byte3 = readContinuationByte();
  834. codePoint = ((byte1 &amp; 0x0F) &lt;&lt; 12) | (byte2 &lt;&lt; 6) | byte3;
  835. <span class="missing-if-branch" title="else path not taken"" >E</span>if (codePoint &gt;= 0x0800) {
  836. return codePoint;
  837. } else {
  838. <span class="cstat-no" title="statement not covered" > throw Error('Invalid continuation byte');</span>
  839. }
  840. }
  841. &nbsp;
  842. // 4-byte sequence
  843. if ((byte1 &amp; 0xF8) == 0xF0) {
  844. byte2 = readContinuationByte();
  845. byte3 = readContinuationByte();
  846. byte4 = readContinuationByte();
  847. codePoint = ((byte1 &amp; 0x0F) &lt;&lt; 0x12) | (byte2 &lt;&lt; 0x0C) |
  848. (byte3 &lt;&lt; 0x06) | byte4;
  849. <span class="missing-if-branch" title="else path not taken"" >E</span>if (codePoint &gt;= 0x010000 &amp;&amp; codePoint &lt;= 0x10FFFF) {
  850. return codePoint;
  851. }
  852. }
  853. &nbsp;
  854. throw Error('Invalid UTF-8 detected');
  855. }
  856. &nbsp;
  857. var byteArray;
  858. var byteCount;
  859. var byteIndex;
  860. function utf8decode(byteString) {
  861. byteArray = ucs2decode(byteString);
  862. byteCount = byteArray.length;
  863. byteIndex = 0;
  864. var codePoints = [];
  865. var tmp;
  866. while ((tmp = decodeSymbol()) !== false) {
  867. codePoints.push(tmp);
  868. }
  869. return ucs2encode(codePoints);
  870. }
  871. &nbsp;
  872. /*--------------------------------------------------------------------------*/
  873. &nbsp;
  874. var utf8 = {
  875. 'version': '2.0.0',
  876. 'encode': utf8encode,
  877. 'decode': utf8decode
  878. };
  879. &nbsp;
  880. // Some AMD build optimizers, like r.js, check for specific condition patterns
  881. // like the following:
  882. <span class="missing-if-branch" title="if path not taken"" >I</span>if (
  883. typeof define == 'function' &amp;&amp;
  884. <span class="branch-1 cbranch-no" title="branch not covered" > typeof define.amd == 'object' </span>&amp;&amp;
  885. <span class="branch-2 cbranch-no" title="branch not covered" > define.amd</span>
  886. ) {
  887. <span class="cstat-no" title="statement not covered" > define(<span class="fstat-no" title="function not covered" >function() {</span></span>
  888. <span class="cstat-no" title="statement not covered" > return utf8;</span>
  889. });
  890. } else <span class="missing-if-branch" title="else path not taken"" >E</span>if (freeExports &amp;&amp; !freeExports.nodeType) {
  891. <span class="missing-if-branch" title="else path not taken"" >E</span>if (freeModule) { // in Node.js or RingoJS v0.8.0+
  892. freeModule.exports = utf8;
  893. } else { // in Narwhal or RingoJS v0.7.0-
  894. <span class="cstat-no" title="statement not covered" > var object = {};</span>
  895. <span class="cstat-no" title="statement not covered" > var hasOwnProperty = object.hasOwnProperty;</span>
  896. <span class="cstat-no" title="statement not covered" > for (var key in utf8) {</span>
  897. <span class="cstat-no" title="statement not covered" > hasOwnProperty.call(utf8, key) &amp;&amp; (freeExports[key] = utf8[key]);</span>
  898. }
  899. }
  900. } else { // in Rhino or a web browser
  901. <span class="cstat-no" title="statement not covered" > root.utf8 = utf8;</span>
  902. }
  903. &nbsp;
  904. }(this));
  905. &nbsp;</pre></td></tr>
  906. </table></pre>
  907. </div>
  908. <div class="footer">
  909. <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jun 20 2013 14:00:05 GMT+0200 (CEST)</div>
  910. </div>
  911. <script src="../prettify.js"></script>
  912. <script src="http://yui.yahooapis.com/3.6.0/build/yui/yui-min.js"></script>
  913. <script>
  914. YUI().use('datatable', function (Y) {
  915. var formatters = {
  916. pct: function (o) {
  917. o.className += o.record.get('classes')[o.column.key];
  918. try {
  919. return o.value.toFixed(2) + '%';
  920. } catch (ex) { return o.value + '%'; }
  921. },
  922. html: function (o) {
  923. o.className += o.record.get('classes')[o.column.key];
  924. return o.record.get(o.column.key + '_html');
  925. }
  926. },
  927. defaultFormatter = function (o) {
  928. o.className += o.record.get('classes')[o.column.key];
  929. return o.value;
  930. };
  931. function getColumns(theadNode) {
  932. var colNodes = theadNode.all('tr th'),
  933. cols = [],
  934. col;
  935. colNodes.each(function (colNode) {
  936. col = {
  937. key: colNode.getAttribute('data-col'),
  938. label: colNode.get('innerHTML') || ' ',
  939. sortable: !colNode.getAttribute('data-nosort'),
  940. className: colNode.getAttribute('class'),
  941. type: colNode.getAttribute('data-type'),
  942. allowHTML: colNode.getAttribute('data-html') === 'true' || colNode.getAttribute('data-fmt') === 'html'
  943. };
  944. col.formatter = formatters[colNode.getAttribute('data-fmt')] || defaultFormatter;
  945. cols.push(col);
  946. });
  947. return cols;
  948. }
  949. function getRowData(trNode, cols) {
  950. var tdNodes = trNode.all('td'),
  951. i,
  952. row = { classes: {} },
  953. node,
  954. name;
  955. for (i = 0; i < cols.length; i += 1) {
  956. name = cols[i].key;
  957. node = tdNodes.item(i);
  958. row[name] = node.getAttribute('data-value') || node.get('innerHTML');
  959. row[name + '_html'] = node.get('innerHTML');
  960. row.classes[name] = node.getAttribute('class');
  961. //Y.log('Name: ' + name + '; Value: ' + row[name]);
  962. if (cols[i].type === 'number') { row[name] = row[name] * 1; }
  963. }
  964. //Y.log(row);
  965. return row;
  966. }
  967. function getData(tbodyNode, cols) {
  968. var data = [];
  969. tbodyNode.all('tr').each(function (trNode) {
  970. data.push(getRowData(trNode, cols));
  971. });
  972. return data;
  973. }
  974. function replaceTable(node) {
  975. if (!node) { return; }
  976. var cols = getColumns(node.one('thead')),
  977. data = getData(node.one('tbody'), cols),
  978. table,
  979. parent = node.get('parentNode');
  980. table = new Y.DataTable({
  981. columns: cols,
  982. data: data,
  983. sortBy: 'file'
  984. });
  985. parent.set('innerHTML', '');
  986. table.render(parent);
  987. }
  988. Y.on('domready', function () {
  989. replaceTable(Y.one('div.coverage-summary table'));
  990. if (typeof prettyPrint === 'function') {
  991. prettyPrint();
  992. }
  993. });
  994. });
  995. </script>
  996. </body>
  997. </html>