marko 2.11.1 → 2.11.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (231) hide show
  1. package/compiler/TemplateBuilder.js +1 -1
  2. package/compiler/TypeConverter.js +1 -1
  3. package/compiler/expression-parser.js +1 -1
  4. package/compiler/util/stringify.js +169 -0
  5. package/package.json +2 -3
  6. package/taglibs/core/ForNode.js +1 -1
  7. package/taglibs/core/IncludeNode.js +1 -1
  8. package/taglibs/core/TagHandlerNode.js +1 -1
  9. package/.npmignore +0 -1
  10. package/coverage/coverage.json +0 -1
  11. package/coverage/lcov-report/base.css +0 -213
  12. package/coverage/lcov-report/index.html +0 -496
  13. package/coverage/lcov-report/marko-v4/bin/index.html +0 -93
  14. package/coverage/lcov-report/marko-v4/bin/markoc.js.html +0 -1160
  15. package/coverage/lcov-report/marko-v4/browser-refresh/index.html +0 -93
  16. package/coverage/lcov-report/marko-v4/browser-refresh/index.js.html +0 -191
  17. package/coverage/lcov-report/marko-v4/compiler/Builder.js.html +0 -1859
  18. package/coverage/lcov-report/marko-v4/compiler/CodeGenerator.js.html +0 -998
  19. package/coverage/lcov-report/marko-v4/compiler/CodeWriter.js.html +0 -851
  20. package/coverage/lcov-report/marko-v4/compiler/CompileContext.js.html +0 -1955
  21. package/coverage/lcov-report/marko-v4/compiler/CompileError.js.html +0 -206
  22. package/coverage/lcov-report/marko-v4/compiler/Compiler.js.html +0 -473
  23. package/coverage/lcov-report/marko-v4/compiler/HtmlJsParser.js.html +0 -341
  24. package/coverage/lcov-report/marko-v4/compiler/InlineCompiler.js.html +0 -317
  25. package/coverage/lcov-report/marko-v4/compiler/Parser.js.html +0 -1271
  26. package/coverage/lcov-report/marko-v4/compiler/Walker.js.html +0 -521
  27. package/coverage/lcov-report/marko-v4/compiler/ast/ArrayContainer.js.html +0 -653
  28. package/coverage/lcov-report/marko-v4/compiler/ast/ArrayExpression.js.html +0 -278
  29. package/coverage/lcov-report/marko-v4/compiler/ast/Assignment.js.html +0 -299
  30. package/coverage/lcov-report/marko-v4/compiler/ast/AttributePlaceholder.js.html +0 -173
  31. package/coverage/lcov-report/marko-v4/compiler/ast/BinaryExpression.js.html +0 -428
  32. package/coverage/lcov-report/marko-v4/compiler/ast/Code.js.html +0 -149
  33. package/coverage/lcov-report/marko-v4/compiler/ast/ConditionalExpression.js.html +0 -239
  34. package/coverage/lcov-report/marko-v4/compiler/ast/Container.js.html +0 -101
  35. package/coverage/lcov-report/marko-v4/compiler/ast/ContainerNode.js.html +0 -122
  36. package/coverage/lcov-report/marko-v4/compiler/ast/CustomTag.js.html +0 -1250
  37. package/coverage/lcov-report/marko-v4/compiler/ast/Declaration.js.html +0 -146
  38. package/coverage/lcov-report/marko-v4/compiler/ast/DocumentType.js.html +0 -146
  39. package/coverage/lcov-report/marko-v4/compiler/ast/Else.js.html +0 -161
  40. package/coverage/lcov-report/marko-v4/compiler/ast/ElseIf.js.html +0 -152
  41. package/coverage/lcov-report/marko-v4/compiler/ast/Expression.js.html +0 -152
  42. package/coverage/lcov-report/marko-v4/compiler/ast/ForEach.js.html +0 -314
  43. package/coverage/lcov-report/marko-v4/compiler/ast/ForEachProp.js.html +0 -290
  44. package/coverage/lcov-report/marko-v4/compiler/ast/ForRange.js.html +0 -374
  45. package/coverage/lcov-report/marko-v4/compiler/ast/ForStatement.js.html +0 -245
  46. package/coverage/lcov-report/marko-v4/compiler/ast/FunctionCall.js.html +0 -374
  47. package/coverage/lcov-report/marko-v4/compiler/ast/FunctionDeclaration.js.html +0 -296
  48. package/coverage/lcov-report/marko-v4/compiler/ast/Html.js.html +0 -311
  49. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/html/generateCode.js.html +0 -473
  50. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/html/index.html +0 -93
  51. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/index.html +0 -93
  52. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/index.js.html +0 -317
  53. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/vdom/generateCode.js.html +0 -128
  54. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/vdom/index.html +0 -93
  55. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttributeCollection.js.html +0 -521
  56. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlComment.js.html +0 -182
  57. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/html/EndTag.js.html +0 -131
  58. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/html/StartTag.js.html +0 -227
  59. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/html/generateCode.js.html +0 -299
  60. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/html/index.html +0 -119
  61. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/index.html +0 -93
  62. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/index.js.html +0 -578
  63. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/vdom/EndElementVDOM.js.html +0 -104
  64. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/vdom/HtmlElementVDOM.js.html +0 -620
  65. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/vdom/generateCode.js.html +0 -326
  66. package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/vdom/index.html +0 -119
  67. package/coverage/lcov-report/marko-v4/compiler/ast/Identifier.js.html +0 -137
  68. package/coverage/lcov-report/marko-v4/compiler/ast/If.js.html +0 -347
  69. package/coverage/lcov-report/marko-v4/compiler/ast/InvokeMacro.js.html +0 -425
  70. package/coverage/lcov-report/marko-v4/compiler/ast/Literal.js.html +0 -320
  71. package/coverage/lcov-report/marko-v4/compiler/ast/LogicalExpression.js.html +0 -359
  72. package/coverage/lcov-report/marko-v4/compiler/ast/Macro.js.html +0 -176
  73. package/coverage/lcov-report/marko-v4/compiler/ast/MemberExpression.js.html +0 -308
  74. package/coverage/lcov-report/marko-v4/compiler/ast/NewExpression.js.html +0 -395
  75. package/coverage/lcov-report/marko-v4/compiler/ast/Node.js.html +0 -1235
  76. package/coverage/lcov-report/marko-v4/compiler/ast/ObjectExpression.js.html +0 -290
  77. package/coverage/lcov-report/marko-v4/compiler/ast/Program.js.html +0 -134
  78. package/coverage/lcov-report/marko-v4/compiler/ast/Property.js.html +0 -257
  79. package/coverage/lcov-report/marko-v4/compiler/ast/Return.js.html +0 -170
  80. package/coverage/lcov-report/marko-v4/compiler/ast/Scriptlet.js.html +0 -152
  81. package/coverage/lcov-report/marko-v4/compiler/ast/SelfInvokingFunction.js.html +0 -155
  82. package/coverage/lcov-report/marko-v4/compiler/ast/TemplateRoot.js.html +0 -344
  83. package/coverage/lcov-report/marko-v4/compiler/ast/Text/html/generateCode.js.html +0 -245
  84. package/coverage/lcov-report/marko-v4/compiler/ast/Text/html/index.html +0 -93
  85. package/coverage/lcov-report/marko-v4/compiler/ast/Text/index.html +0 -93
  86. package/coverage/lcov-report/marko-v4/compiler/ast/Text/index.js.html +0 -215
  87. package/coverage/lcov-report/marko-v4/compiler/ast/Text/vdom/TextVDOM.js.html +0 -407
  88. package/coverage/lcov-report/marko-v4/compiler/ast/Text/vdom/generateCode.js.html +0 -179
  89. package/coverage/lcov-report/marko-v4/compiler/ast/Text/vdom/index.html +0 -106
  90. package/coverage/lcov-report/marko-v4/compiler/ast/ThisExpression.js.html +0 -131
  91. package/coverage/lcov-report/marko-v4/compiler/ast/UnaryExpression.js.html +0 -365
  92. package/coverage/lcov-report/marko-v4/compiler/ast/UpdateExpression.js.html +0 -341
  93. package/coverage/lcov-report/marko-v4/compiler/ast/VariableDeclarator.js.html +0 -221
  94. package/coverage/lcov-report/marko-v4/compiler/ast/Vars.js.html +0 -290
  95. package/coverage/lcov-report/marko-v4/compiler/ast/WhileStatement.js.html +0 -173
  96. package/coverage/lcov-report/marko-v4/compiler/ast/index.html +0 -678
  97. package/coverage/lcov-report/marko-v4/compiler/config.js.html +0 -194
  98. package/coverage/lcov-report/marko-v4/compiler/index.html +0 -236
  99. package/coverage/lcov-report/marko-v4/compiler/index.js.html +0 -695
  100. package/coverage/lcov-report/marko-v4/compiler/taglib-finder/index-browser.js.html +0 -158
  101. package/coverage/lcov-report/marko-v4/compiler/taglib-finder/index.html +0 -106
  102. package/coverage/lcov-report/marko-v4/compiler/taglib-finder/index.js.html +0 -632
  103. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/DependencyChain.js.html +0 -113
  104. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Attribute.js.html +0 -155
  105. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/ImportedVariable.js.html +0 -140
  106. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/NestedVariable.js.html +0 -134
  107. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Property.js.html +0 -140
  108. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Tag.js.html +0 -797
  109. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Taglib.js.html +0 -440
  110. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Transformer.js.html +0 -236
  111. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/index.html +0 -184
  112. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/index.js.html +0 -65
  113. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/handleAttributes.js.html +0 -161
  114. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/index.html +0 -236
  115. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/index.js.html +0 -191
  116. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/json-file-reader-browser.js.html +0 -143
  117. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/json-file-reader.js.html +0 -155
  118. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/loader-attribute.js.html +0 -659
  119. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/loader-tag.js.html +0 -1931
  120. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/loader-taglib.js.html +0 -1010
  121. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/loader.js.html +0 -119
  122. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/scanTagsDir-browser.js.html +0 -119
  123. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/scanTagsDir.js.html +0 -548
  124. package/coverage/lcov-report/marko-v4/compiler/taglib-loader/tag-def-from-code.js.html +0 -287
  125. package/coverage/lcov-report/marko-v4/compiler/taglib-lookup/TaglibLookup.js.html +0 -1205
  126. package/coverage/lcov-report/marko-v4/compiler/taglib-lookup/index.html +0 -106
  127. package/coverage/lcov-report/marko-v4/compiler/taglib-lookup/index.js.html +0 -302
  128. package/coverage/lcov-report/marko-v4/compiler/util/PosInfo.js.html +0 -140
  129. package/coverage/lcov-report/marko-v4/compiler/util/UniqueVars.js.html +0 -227
  130. package/coverage/lcov-report/marko-v4/compiler/util/adjustIndent.js.html +0 -272
  131. package/coverage/lcov-report/marko-v4/compiler/util/deresolve-browser.js.html +0 -119
  132. package/coverage/lcov-report/marko-v4/compiler/util/deresolve.js.html +0 -113
  133. package/coverage/lcov-report/marko-v4/compiler/util/fingerprint.js.html +0 -83
  134. package/coverage/lcov-report/marko-v4/compiler/util/index.html +0 -366
  135. package/coverage/lcov-report/marko-v4/compiler/util/isCompoundExpression.js.html +0 -92
  136. package/coverage/lcov-report/marko-v4/compiler/util/isJavaScriptReservedWord.js.html +0 -80
  137. package/coverage/lcov-report/marko-v4/compiler/util/isValidJavaScriptIdentifier.js.html +0 -80
  138. package/coverage/lcov-report/marko-v4/compiler/util/isValidJavaScriptVarName.js.html +0 -95
  139. package/coverage/lcov-report/marko-v4/compiler/util/javaScriptReservedWords.js.html +0 -260
  140. package/coverage/lcov-report/marko-v4/compiler/util/macros.js.html +0 -326
  141. package/coverage/lcov-report/marko-v4/compiler/util/parseExpression.js.html +0 -77
  142. package/coverage/lcov-report/marko-v4/compiler/util/parseJavaScript.js.html +0 -833
  143. package/coverage/lcov-report/marko-v4/compiler/util/parseJavaScriptArgs.js.html +0 -101
  144. package/coverage/lcov-report/marko-v4/compiler/util/parseStatement.js.html +0 -77
  145. package/coverage/lcov-report/marko-v4/compiler/util/removeComments.js.html +0 -221
  146. package/coverage/lcov-report/marko-v4/compiler/util/removeDashes.js.html +0 -77
  147. package/coverage/lcov-report/marko-v4/compiler/util/resolve-browser.js.html +0 -125
  148. package/coverage/lcov-report/marko-v4/compiler/util/resolve.js.html +0 -128
  149. package/coverage/lcov-report/marko-v4/compiler/util/safeVarName.js.html +0 -116
  150. package/coverage/lcov-report/marko-v4/compiler/util/tokenizer.js.html +0 -173
  151. package/coverage/lcov-report/marko-v4/compiler/util/vdom/VDOMOptimizer.js.html +0 -560
  152. package/coverage/lcov-report/marko-v4/compiler/util/vdom/index.html +0 -119
  153. package/coverage/lcov-report/marko-v4/compiler/util/vdom/index.js.html +0 -119
  154. package/coverage/lcov-report/marko-v4/compiler/util/vdom/isStaticValue.js.html +0 -212
  155. package/coverage/lcov-report/marko-v4/defineRenderer.js.html +0 -206
  156. package/coverage/lcov-report/marko-v4/express.js.html +0 -161
  157. package/coverage/lcov-report/marko-v4/helpers/empty.js.html +0 -77
  158. package/coverage/lcov-report/marko-v4/helpers/index.html +0 -106
  159. package/coverage/lcov-report/marko-v4/helpers/notEmpty.js.html +0 -95
  160. package/coverage/lcov-report/marko-v4/hot-reload/index.html +0 -93
  161. package/coverage/lcov-report/marko-v4/hot-reload/index.js.html +0 -524
  162. package/coverage/lcov-report/marko-v4/index.html +0 -158
  163. package/coverage/lcov-report/marko-v4/node-require-browser.js.html +0 -113
  164. package/coverage/lcov-report/marko-v4/node-require.js.html +0 -434
  165. package/coverage/lcov-report/marko-v4/runtime/deprecate.js.html +0 -131
  166. package/coverage/lcov-report/marko-v4/runtime/forEachPropStatusVar.js.html +0 -158
  167. package/coverage/lcov-report/marko-v4/runtime/helpers.js.html +0 -839
  168. package/coverage/lcov-report/marko-v4/runtime/html/helpers.js.html +0 -506
  169. package/coverage/lcov-report/marko-v4/runtime/html/index.html +0 -106
  170. package/coverage/lcov-report/marko-v4/runtime/html/index.js.html +0 -914
  171. package/coverage/lcov-report/marko-v4/runtime/index.html +0 -145
  172. package/coverage/lcov-report/marko-v4/runtime/inline.js.html +0 -65
  173. package/coverage/lcov-report/marko-v4/runtime/loader/index-browser-dynamic.js.html +0 -128
  174. package/coverage/lcov-report/marko-v4/runtime/loader/index-browser.js.html +0 -119
  175. package/coverage/lcov-report/marko-v4/runtime/loader/index.html +0 -119
  176. package/coverage/lcov-report/marko-v4/runtime/loader/index.js.html +0 -548
  177. package/coverage/lcov-report/marko-v4/runtime/stream.js.html +0 -224
  178. package/coverage/lcov-report/marko-v4/runtime/vdom/helpers.js.html +0 -350
  179. package/coverage/lcov-report/marko-v4/runtime/vdom/index.html +0 -106
  180. package/coverage/lcov-report/marko-v4/runtime/vdom/index.js.html +0 -893
  181. package/coverage/lcov-report/marko-v4/stream.js.html +0 -98
  182. package/coverage/lcov-report/marko-v4/taglibs/async/async-fragment-to-await-transformer.js.html +0 -221
  183. package/coverage/lcov-report/marko-v4/taglibs/async/await-nested-tag-transformer.js.html +0 -140
  184. package/coverage/lcov-report/marko-v4/taglibs/async/await-reorderer-tag.js.html +0 -278
  185. package/coverage/lcov-report/marko-v4/taglibs/async/await-tag-transformer.js.html +0 -353
  186. package/coverage/lcov-report/marko-v4/taglibs/async/await-tag.js.html +0 -779
  187. package/coverage/lcov-report/marko-v4/taglibs/async/client-reorder-browser.js.html +0 -65
  188. package/coverage/lcov-report/marko-v4/taglibs/async/client-reorder-runtime.js.html +0 -167
  189. package/coverage/lcov-report/marko-v4/taglibs/async/client-reorder-runtime.min.js.html +0 -65
  190. package/coverage/lcov-report/marko-v4/taglibs/async/client-reorder.js.html +0 -98
  191. package/coverage/lcov-report/marko-v4/taglibs/async/index.html +0 -197
  192. package/coverage/lcov-report/marko-v4/taglibs/cache/cached-fragment-tag-transformer.js.html +0 -89
  193. package/coverage/lcov-report/marko-v4/taglibs/cache/cached-fragment-tag.js.html +0 -266
  194. package/coverage/lcov-report/marko-v4/taglibs/cache/default-cache-manager.js.html +0 -173
  195. package/coverage/lcov-report/marko-v4/taglibs/cache/index.html +0 -119
  196. package/coverage/lcov-report/marko-v4/taglibs/core/assign-tag.js.html +0 -116
  197. package/coverage/lcov-report/marko-v4/taglibs/core/core-transformer.js.html +0 -683
  198. package/coverage/lcov-report/marko-v4/taglibs/core/else-if-tag.js.html +0 -140
  199. package/coverage/lcov-report/marko-v4/taglibs/core/else-tag.js.html +0 -170
  200. package/coverage/lcov-report/marko-v4/taglibs/core/for-tag.js.html +0 -131
  201. package/coverage/lcov-report/marko-v4/taglibs/core/if-tag.js.html +0 -140
  202. package/coverage/lcov-report/marko-v4/taglibs/core/include-html-tag-browser.js.html +0 -113
  203. package/coverage/lcov-report/marko-v4/taglibs/core/include-html-tag.js.html +0 -152
  204. package/coverage/lcov-report/marko-v4/taglibs/core/include-tag.js.html +0 -248
  205. package/coverage/lcov-report/marko-v4/taglibs/core/include-text-tag-browser.js.html +0 -113
  206. package/coverage/lcov-report/marko-v4/taglibs/core/include-text-tag.js.html +0 -152
  207. package/coverage/lcov-report/marko-v4/taglibs/core/index.html +0 -314
  208. package/coverage/lcov-report/marko-v4/taglibs/core/invoke-tag.js.html +0 -116
  209. package/coverage/lcov-report/marko-v4/taglibs/core/macro-body-tag.js.html +0 -83
  210. package/coverage/lcov-report/marko-v4/taglibs/core/macro-tag.js.html +0 -131
  211. package/coverage/lcov-report/marko-v4/taglibs/core/marko-preserve-whitespace-tag.js.html +0 -71
  212. package/coverage/lcov-report/marko-v4/taglibs/core/unless-tag.js.html +0 -143
  213. package/coverage/lcov-report/marko-v4/taglibs/core/util/createLoopNode.js.html +0 -128
  214. package/coverage/lcov-report/marko-v4/taglibs/core/util/index.html +0 -119
  215. package/coverage/lcov-report/marko-v4/taglibs/core/util/parseFor.js.html +0 -1145
  216. package/coverage/lcov-report/marko-v4/taglibs/core/util/parseJavaScriptIdentifier.js.html +0 -131
  217. package/coverage/lcov-report/marko-v4/taglibs/core/var-tag.js.html +0 -152
  218. package/coverage/lcov-report/marko-v4/taglibs/core/while-tag.js.html +0 -95
  219. package/coverage/lcov-report/marko-v4/taglibs/html/html-comment-tag.js.html +0 -146
  220. package/coverage/lcov-report/marko-v4/taglibs/html/index.html +0 -93
  221. package/coverage/lcov-report/marko-v4/taglibs/layout/index.html +0 -132
  222. package/coverage/lcov-report/marko-v4/taglibs/layout/placeholder-tag.js.html +0 -107
  223. package/coverage/lcov-report/marko-v4/taglibs/layout/put-tag.js.html +0 -77
  224. package/coverage/lcov-report/marko-v4/taglibs/layout/use-tag-transformer.js.html +0 -137
  225. package/coverage/lcov-report/marko-v4/taglibs/layout/use-tag.js.html +0 -134
  226. package/coverage/lcov-report/marko-v4/vdom.js.html +0 -65
  227. package/coverage/lcov-report/prettify.css +0 -1
  228. package/coverage/lcov-report/prettify.js +0 -1
  229. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  230. package/coverage/lcov-report/sorter.js +0 -158
  231. package/coverage/lcov.info +0 -13662
@@ -1,1271 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <title>Code coverage report for marko-v4/compiler/Parser.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">marko-v4/compiler/</a> Parser.js
20
- </h1>
21
- <div class='clearfix'>
22
- <div class='fl pad1y space-right2'>
23
- <span class="strong">88.11% </span>
24
- <span class="quiet">Statements</span>
25
- <span class='fraction'>163/185</span>
26
- </div>
27
- <div class='fl pad1y space-right2'>
28
- <span class="strong">82.76% </span>
29
- <span class="quiet">Branches</span>
30
- <span class='fraction'>72/87</span>
31
- </div>
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">95.45% </span>
34
- <span class="quiet">Functions</span>
35
- <span class='fraction'>21/22</span>
36
- </div>
37
- <div class='fl pad1y space-right2'>
38
- <span class="strong">88.11% </span>
39
- <span class="quiet">Lines</span>
40
- <span class='fraction'>163/185</span>
41
- </div>
42
- </div>
43
- </div>
44
- <div class='status-line high'></div>
45
- <pre><table class="coverage">
46
- <tr><td class="line-count quiet">1
47
- 2
48
- 3
49
- 4
50
- 5
51
- 6
52
- 7
53
- 8
54
- 9
55
- 10
56
- 11
57
- 12
58
- 13
59
- 14
60
- 15
61
- 16
62
- 17
63
- 18
64
- 19
65
- 20
66
- 21
67
- 22
68
- 23
69
- 24
70
- 25
71
- 26
72
- 27
73
- 28
74
- 29
75
- 30
76
- 31
77
- 32
78
- 33
79
- 34
80
- 35
81
- 36
82
- 37
83
- 38
84
- 39
85
- 40
86
- 41
87
- 42
88
- 43
89
- 44
90
- 45
91
- 46
92
- 47
93
- 48
94
- 49
95
- 50
96
- 51
97
- 52
98
- 53
99
- 54
100
- 55
101
- 56
102
- 57
103
- 58
104
- 59
105
- 60
106
- 61
107
- 62
108
- 63
109
- 64
110
- 65
111
- 66
112
- 67
113
- 68
114
- 69
115
- 70
116
- 71
117
- 72
118
- 73
119
- 74
120
- 75
121
- 76
122
- 77
123
- 78
124
- 79
125
- 80
126
- 81
127
- 82
128
- 83
129
- 84
130
- 85
131
- 86
132
- 87
133
- 88
134
- 89
135
- 90
136
- 91
137
- 92
138
- 93
139
- 94
140
- 95
141
- 96
142
- 97
143
- 98
144
- 99
145
- 100
146
- 101
147
- 102
148
- 103
149
- 104
150
- 105
151
- 106
152
- 107
153
- 108
154
- 109
155
- 110
156
- 111
157
- 112
158
- 113
159
- 114
160
- 115
161
- 116
162
- 117
163
- 118
164
- 119
165
- 120
166
- 121
167
- 122
168
- 123
169
- 124
170
- 125
171
- 126
172
- 127
173
- 128
174
- 129
175
- 130
176
- 131
177
- 132
178
- 133
179
- 134
180
- 135
181
- 136
182
- 137
183
- 138
184
- 139
185
- 140
186
- 141
187
- 142
188
- 143
189
- 144
190
- 145
191
- 146
192
- 147
193
- 148
194
- 149
195
- 150
196
- 151
197
- 152
198
- 153
199
- 154
200
- 155
201
- 156
202
- 157
203
- 158
204
- 159
205
- 160
206
- 161
207
- 162
208
- 163
209
- 164
210
- 165
211
- 166
212
- 167
213
- 168
214
- 169
215
- 170
216
- 171
217
- 172
218
- 173
219
- 174
220
- 175
221
- 176
222
- 177
223
- 178
224
- 179
225
- 180
226
- 181
227
- 182
228
- 183
229
- 184
230
- 185
231
- 186
232
- 187
233
- 188
234
- 189
235
- 190
236
- 191
237
- 192
238
- 193
239
- 194
240
- 195
241
- 196
242
- 197
243
- 198
244
- 199
245
- 200
246
- 201
247
- 202
248
- 203
249
- 204
250
- 205
251
- 206
252
- 207
253
- 208
254
- 209
255
- 210
256
- 211
257
- 212
258
- 213
259
- 214
260
- 215
261
- 216
262
- 217
263
- 218
264
- 219
265
- 220
266
- 221
267
- 222
268
- 223
269
- 224
270
- 225
271
- 226
272
- 227
273
- 228
274
- 229
275
- 230
276
- 231
277
- 232
278
- 233
279
- 234
280
- 235
281
- 236
282
- 237
283
- 238
284
- 239
285
- 240
286
- 241
287
- 242
288
- 243
289
- 244
290
- 245
291
- 246
292
- 247
293
- 248
294
- 249
295
- 250
296
- 251
297
- 252
298
- 253
299
- 254
300
- 255
301
- 256
302
- 257
303
- 258
304
- 259
305
- 260
306
- 261
307
- 262
308
- 263
309
- 264
310
- 265
311
- 266
312
- 267
313
- 268
314
- 269
315
- 270
316
- 271
317
- 272
318
- 273
319
- 274
320
- 275
321
- 276
322
- 277
323
- 278
324
- 279
325
- 280
326
- 281
327
- 282
328
- 283
329
- 284
330
- 285
331
- 286
332
- 287
333
- 288
334
- 289
335
- 290
336
- 291
337
- 292
338
- 293
339
- 294
340
- 295
341
- 296
342
- 297
343
- 298
344
- 299
345
- 300
346
- 301
347
- 302
348
- 303
349
- 304
350
- 305
351
- 306
352
- 307
353
- 308
354
- 309
355
- 310
356
- 311
357
- 312
358
- 313
359
- 314
360
- 315
361
- 316
362
- 317
363
- 318
364
- 319
365
- 320
366
- 321
367
- 322
368
- 323
369
- 324
370
- 325
371
- 326
372
- 327
373
- 328
374
- 329
375
- 330
376
- 331
377
- 332
378
- 333
379
- 334
380
- 335
381
- 336
382
- 337
383
- 338
384
- 339
385
- 340
386
- 341
387
- 342
388
- 343
389
- 344
390
- 345
391
- 346
392
- 347
393
- 348
394
- 349
395
- 350
396
- 351
397
- 352
398
- 353
399
- 354
400
- 355
401
- 356
402
- 357
403
- 358
404
- 359
405
- 360
406
- 361
407
- 362
408
- 363
409
- 364
410
- 365
411
- 366
412
- 367
413
- 368
414
- 369
415
- 370
416
- 371
417
- 372
418
- 373
419
- 374
420
- 375
421
- 376
422
- 377
423
- 378
424
- 379
425
- 380
426
- 381
427
- 382
428
- 383
429
- 384
430
- 385
431
- 386
432
- 387
433
- 388
434
- 389
435
- 390
436
- 391
437
- 392
438
- 393
439
- 394
440
- 395
441
- 396
442
- 397
443
- 398
444
- 399
445
- 400
446
- 401
447
- 402
448
- 403</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">1×</span>
450
- <span class="cline-any cline-yes">1×</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-yes">1×</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-yes">5×</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-yes">2×</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">1×</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-yes">1×</span>
464
- <span class="cline-any cline-yes">30×</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-yes">1×</span>
468
- <span class="cline-any cline-yes">245×</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-yes">1014×</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-yes">46×</span>
474
- <span class="cline-any cline-yes">5×</span>
475
- <span class="cline-any cline-yes">41×</span>
476
- <span class="cline-any cline-yes">41×</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-yes">245×</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-yes">1×</span>
486
- <span class="cline-any cline-yes">30×</span>
487
- <span class="cline-any cline-yes">30×</span>
488
- <span class="cline-any cline-yes">52×</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-yes">30×</span>
492
- <span class="cline-any cline-yes">30×</span>
493
- <span class="cline-any cline-yes">14×</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">30×</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-yes">30×</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-yes">30×</span>
501
- <span class="cline-any cline-yes">66×</span>
502
- <span class="cline-any cline-yes">66×</span>
503
- <span class="cline-any cline-yes">20×</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-yes">46×</span>
506
- <span class="cline-any cline-yes">46×</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-yes">30×</span>
511
- <span class="cline-any cline-yes">18×</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-yes">12×</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-yes">3×</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-yes">3×</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-yes">3×</span>
525
- <span class="cline-any cline-yes">3×</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-yes">3×</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-yes">3×</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-yes">704×</span>
537
- <span class="cline-any cline-yes">704×</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-yes">704×</span>
542
- <span class="cline-any cline-yes">704×</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-yes">704×</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-yes">704×</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-yes">704×</span>
549
- <span class="cline-any cline-yes">704×</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-yes">704×</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-neutral">&nbsp;</span>
555
- <span class="cline-any cline-yes">704×</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">704×</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-neutral">&nbsp;</span>
561
- <span class="cline-any cline-yes">2922×</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-yes">2922×</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-yes">2922×</span>
569
- <span class="cline-any cline-yes">123×</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-yes">2799×</span>
572
- <span class="cline-any cline-yes">2799×</span>
573
- <span class="cline-any cline-neutral">&nbsp;</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-yes">1676×</span>
578
- <span class="cline-any cline-yes">1676×</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-yes">1676×</span>
581
- <span class="cline-any cline-yes">1676×</span>
582
- <span class="cline-any cline-yes">1676×</span>
583
- <span class="cline-any cline-yes">1676×</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-yes">1676×</span>
586
- <span class="cline-any cline-yes">298×</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-yes">1676×</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-yes">1676×</span>
592
- <span class="cline-any cline-yes">1676×</span>
593
- <span class="cline-any cline-yes">4×</span>
594
- <span class="cline-any cline-yes">1672×</span>
595
- <span class="cline-any cline-yes">7×</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-yes">7×</span>
598
- <span class="cline-any cline-yes">7×</span>
599
- <span class="cline-any cline-yes">7×</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-yes">7×</span>
602
- <span class="cline-any cline-no">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-no">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-yes">7×</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-yes">7×</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-yes">1669×</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-yes">1669×</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-yes">1669×</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-yes">1269×</span>
630
- <span class="cline-any cline-yes">1269×</span>
631
- <span class="cline-any cline-yes">633×</span>
632
- <span class="cline-any cline-yes">636×</span>
633
- <span class="cline-any cline-yes">389×</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-yes">247×</span>
636
- <span class="cline-any cline-yes">247×</span>
637
- <span class="cline-any cline-yes">247×</span>
638
- <span class="cline-any cline-yes">247×</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-yes">2×</span>
641
- <span class="cline-any cline-yes">2×</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-yes">247×</span>
645
- <span class="cline-any cline-yes">245×</span>
646
- <span class="cline-any cline-no">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-yes">245×</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-yes">2×</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-yes">1269×</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-yes">1269×</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-yes">280×</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-yes">1269×</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-yes">1669×</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-yes">1669×</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-neutral">&nbsp;</span>
677
- <span class="cline-any cline-no">&nbsp;</span>
678
- <span class="cline-any cline-no">&nbsp;</span>
679
- <span class="cline-any cline-no">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-yes">1669×</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-yes">1669×</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-yes">2×</span>
687
- <span class="cline-any cline-yes">2×</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-yes">1669×</span>
692
- <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
698
- <span class="cline-any cline-no">&nbsp;</span>
699
- <span class="cline-any cline-no">&nbsp;</span>
700
- <span class="cline-any cline-no">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-yes">1669×</span>
705
- <span class="cline-any cline-yes">30×</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-yes">1669×</span>
709
- <span class="cline-any cline-yes">8×</span>
710
- <span class="cline-any cline-no">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-yes">8×</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-yes">1669×</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-yes">1669×</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-yes">1672×</span>
727
- <span class="cline-any cline-yes">1672×</span>
728
- <span class="cline-any cline-yes">7×</span>
729
- <span class="cline-any cline-neutral">&nbsp;</span>
730
- <span class="cline-any cline-neutral">&nbsp;</span>
731
- <span class="cline-any cline-neutral">&nbsp;</span>
732
- <span class="cline-any cline-yes">1665×</span>
733
- <span class="cline-any cline-neutral">&nbsp;</span>
734
- <span class="cline-any cline-yes">1665×</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-yes">34×</span>
741
- <span class="cline-any cline-neutral">&nbsp;</span>
742
- <span class="cline-any cline-yes">34×</span>
743
- <span class="cline-any cline-neutral">&nbsp;</span>
744
- <span class="cline-any cline-yes">34×</span>
745
- <span class="cline-any cline-neutral">&nbsp;</span>
746
- <span class="cline-any cline-neutral">&nbsp;</span>
747
- <span class="cline-any cline-yes">34×</span>
748
- <span class="cline-any cline-yes">6×</span>
749
- <span class="cline-any cline-yes">6×</span>
750
- <span class="cline-any cline-neutral">&nbsp;</span>
751
- <span class="cline-any cline-neutral">&nbsp;</span>
752
- <span class="cline-any cline-neutral">&nbsp;</span>
753
- <span class="cline-any cline-neutral">&nbsp;</span>
754
- <span class="cline-any cline-no">&nbsp;</span>
755
- <span class="cline-any cline-neutral">&nbsp;</span>
756
- <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-neutral">&nbsp;</span>
758
- <span class="cline-any cline-no">&nbsp;</span>
759
- <span class="cline-any cline-no">&nbsp;</span>
760
- <span class="cline-any cline-neutral">&nbsp;</span>
761
- <span class="cline-any cline-neutral">&nbsp;</span>
762
- <span class="cline-any cline-neutral">&nbsp;</span>
763
- <span class="cline-any cline-yes">11×</span>
764
- <span class="cline-any cline-neutral">&nbsp;</span>
765
- <span class="cline-any cline-yes">11×</span>
766
- <span class="cline-any cline-neutral">&nbsp;</span>
767
- <span class="cline-any cline-yes">11×</span>
768
- <span class="cline-any cline-yes">11×</span>
769
- <span class="cline-any cline-neutral">&nbsp;</span>
770
- <span class="cline-any cline-neutral">&nbsp;</span>
771
- <span class="cline-any cline-neutral">&nbsp;</span>
772
- <span class="cline-any cline-yes">458×</span>
773
- <span class="cline-any cline-yes">458×</span>
774
- <span class="cline-any cline-yes">458×</span>
775
- <span class="cline-any cline-yes">458×</span>
776
- <span class="cline-any cline-neutral">&nbsp;</span>
777
- <span class="cline-any cline-yes">458×</span>
778
- <span class="cline-any cline-yes">458×</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-yes">15×</span>
783
- <span class="cline-any cline-yes">15×</span>
784
- <span class="cline-any cline-yes">15×</span>
785
- <span class="cline-any cline-yes">15×</span>
786
- <span class="cline-any cline-neutral">&nbsp;</span>
787
- <span class="cline-any cline-neutral">&nbsp;</span>
788
- <span class="cline-any cline-neutral">&nbsp;</span>
789
- <span class="cline-any cline-yes">6×</span>
790
- <span class="cline-any cline-neutral">&nbsp;</span>
791
- <span class="cline-any cline-neutral">&nbsp;</span>
792
- <span class="cline-any cline-neutral">&nbsp;</span>
793
- <span class="cline-any cline-neutral">&nbsp;</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
796
- <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-neutral">&nbsp;</span>
798
- <span class="cline-any cline-yes">4965×</span>
799
- <span class="cline-any cline-yes">4965×</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-yes">1676×</span>
804
- <span class="cline-any cline-neutral">&nbsp;</span>
805
- <span class="cline-any cline-yes">1676×</span>
806
- <span class="cline-any cline-yes">1276×</span>
807
- <span class="cline-any cline-yes">1276×</span>
808
- <span class="cline-any cline-yes">1276×</span>
809
- <span class="cline-any cline-yes">4×</span>
810
- <span class="cline-any cline-neutral">&nbsp;</span>
811
- <span class="cline-any cline-yes">4×</span>
812
- <span class="cline-any cline-yes">4×</span>
813
- <span class="cline-any cline-neutral">&nbsp;</span>
814
- <span class="cline-any cline-neutral">&nbsp;</span>
815
- <span class="cline-any cline-yes">4×</span>
816
- <span class="cline-any cline-neutral">&nbsp;</span>
817
- <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-yes">4×</span>
819
- <span class="cline-any cline-neutral">&nbsp;</span>
820
- <span class="cline-any cline-no">&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-no">&nbsp;</span>
825
- <span class="cline-any cline-neutral">&nbsp;</span>
826
- <span class="cline-any cline-yes">1272×</span>
827
- <span class="cline-any cline-yes">9×</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-yes">1663×</span>
832
- <span class="cline-any cline-yes">1663×</span>
833
- <span class="cline-any cline-neutral">&nbsp;</span>
834
- <span class="cline-any cline-yes">1663×</span>
835
- <span class="cline-any cline-yes">852×</span>
836
- <span class="cline-any cline-yes">852×</span>
837
- <span class="cline-any cline-yes">2×</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-yes">1661×</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-yes">1676×</span>
846
- <span class="cline-any cline-yes">1676×</span>
847
- <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-neutral">&nbsp;</span>
849
- <span class="cline-any cline-neutral">&nbsp;</span>
850
- <span class="cline-any cline-yes">1×</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
851
- var ok = require('assert').ok;
852
- var AttributePlaceholder = require('./ast/AttributePlaceholder');
853
- &nbsp;
854
- var COMPILER_ATTRIBUTE_HANDLERS = {
855
- 'preserve-whitespace': function(attr, context) {
856
- context.setPreserveWhitespace(true);
857
- },
858
- 'preserve-comments': function(attr, context) {
859
- context.setPreserveComments(true);
860
- }
861
- };
862
- &nbsp;
863
- var ieConditionalCommentRegExp = /^\[if [^]*?&lt;!\[endif\]$/;
864
- &nbsp;
865
- function isIEConditionalComment(comment) {
866
- return ieConditionalCommentRegExp.test(comment);
867
- }
868
- &nbsp;
869
- function replacePlaceholderEscapeFuncs(node, context) {
870
- var walker = context.createWalker({
871
- exit: function(node, parent) {
872
- if (node.type === 'FunctionCall' &amp;&amp;
873
- node.callee.type === 'Identifier') {
874
- &nbsp;
875
- if (node.callee.name === '$noEscapeXml') {
876
- return new AttributePlaceholder({escape: false, value: node.args[0]});
877
- } else <span class="missing-if-branch" title="else path not taken" >E</span>if (node.callee.name === '$escapeXml') {
878
- return new AttributePlaceholder({escape: true, value: node.args[0]});
879
- }
880
- }
881
- }
882
- });
883
- &nbsp;
884
- return walker.walk(node);
885
- }
886
- &nbsp;
887
- function mergeShorthandClassNames(el, shorthandClassNames, context) {
888
- var builder = context.builder;
889
- let classNames = shorthandClassNames.map((className) =&gt; {
890
- return builder.parseExpression(className.value);
891
- });
892
- &nbsp;
893
- var classAttr = el.getAttributeValue('class');
894
- if (classAttr) {
895
- classNames.push(classAttr);
896
- }
897
- &nbsp;
898
- let prevClassName;
899
- &nbsp;
900
- var finalClassNames = [];
901
- &nbsp;
902
- for (var i=0; i&lt;classNames.length; i++) {
903
- let className = classNames[i];
904
- if (prevClassName &amp;&amp; className.type === 'Literal' &amp;&amp; prevClassName.type === 'Literal') {
905
- prevClassName.value += ' ' + className.value;
906
- } else {
907
- finalClassNames.push(className);
908
- prevClassName = className;
909
- }
910
- }
911
- &nbsp;
912
- if (finalClassNames.length === 1) {
913
- el.setAttributeValue('class', finalClassNames[0]);
914
- } else {
915
- &nbsp;
916
- el.setAttributeValue('class', builder.functionCall(context.helper('classList'), finalClassNames));
917
- }
918
- }
919
- &nbsp;
920
- class Parser {
921
- constructor(parserImpl, options) {
922
- ok(parserImpl, '"parserImpl" is required');
923
- &nbsp;
924
- this.parserImpl = parserImpl;
925
- &nbsp;
926
- this.prevTextNode = null;
927
- this.stack = null;
928
- &nbsp;
929
- this.raw = options &amp;&amp; options.raw === true;
930
- &nbsp;
931
- // The context gets provided when parse is called
932
- // but we store it as part of the object so that the handler
933
- // methods have access
934
- this.context = null;
935
- }
936
- &nbsp;
937
- _reset() {
938
- this.prevTextNode = null;
939
- this.stack = [];
940
- }
941
- &nbsp;
942
- parse(src, context) {
943
- ok(typeof src === 'string', '"src" should be a string');
944
- ok(context, '"context" is required');
945
- &nbsp;
946
- this._reset();
947
- &nbsp;
948
- this.context = context;
949
- &nbsp;
950
- var builder = context.builder;
951
- var rootNode = builder.templateRoot();
952
- &nbsp;
953
- this.stack.push({
954
- node: rootNode
955
- });
956
- &nbsp;
957
- this.parserImpl.parse(src, this);
958
- &nbsp;
959
- return rootNode;
960
- }
961
- &nbsp;
962
- handleCharacters(text, parseMode) {
963
- var builder = this.context.builder;
964
- &nbsp;
965
- var escape = parseMode !== 'html';
966
- // NOTE: If parseMode is 'static-text' or 'parsed-text' then that means that special
967
- // HTML characters may not have been escaped on the way in so we need to escape
968
- // them on the way out
969
- &nbsp;
970
- if (this.prevTextNode &amp;&amp; this.prevTextNode.isLiteral() &amp;&amp; this.prevTextNode.escape === escape) {
971
- this.prevTextNode.argument.value += text;
972
- } else {
973
- this.prevTextNode = builder.text(builder.literal(text), escape);
974
- this.parentNode.appendChild(this.prevTextNode);
975
- }
976
- }
977
- &nbsp;
978
- handleStartElement(el) {
979
- var context = this.context;
980
- var builder = context.builder;
981
- &nbsp;
982
- var tagName = el.tagName;
983
- var tagNameExpression = el.tagNameExpression;
984
- var attributes = el.attributes;
985
- var argument = el.argument; // e.g. For &lt;for(color in colors)&gt;, argument will be "color in colors"
986
- &nbsp;
987
- if (argument) {
988
- argument = argument.value;
989
- }
990
- &nbsp;
991
- var raw = this.raw;
992
- &nbsp;
993
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!raw) {
994
- if (tagNameExpression) {
995
- tagName = builder.parseExpression(tagNameExpression);
996
- } else if (tagName === 'marko-compiler-options') {
997
- this.parentNode.setTrimStartEnd(true);
998
- &nbsp;
999
- attributes.forEach(function (attr) {
1000
- let attrName = attr.name;
1001
- let handler = COMPILER_ATTRIBUTE_HANDLERS[attrName];
1002
- &nbsp;
1003
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!handler) {
1004
- <span class="cstat-no" title="statement not covered" > context.addError({</span>
1005
- code: 'ERR_INVALID_COMPILER_OPTION',
1006
- message: 'Invalid Marko compiler option of "' + attrName + '". Allowed: ' + Object.keys(COMPILER_ATTRIBUTE_HANDLERS).join(', '),
1007
- pos: el.pos,
1008
- node: el
1009
- });
1010
- <span class="cstat-no" title="statement not covered" > return;</span>
1011
- }
1012
- &nbsp;
1013
- handler(attr, context);
1014
- });
1015
- &nbsp;
1016
- return;
1017
- }
1018
- }
1019
- &nbsp;
1020
- this.prevTextNode = null;
1021
- &nbsp;
1022
- var attributeParseErrors = [];
1023
- &nbsp;
1024
- var elDef = {
1025
- tagName: tagName,
1026
- argument: argument,
1027
- openTagOnly: el.openTagOnly === true,
1028
- selfClosed: el.selfClosed === true,
1029
- pos: el.pos,
1030
- attributes: attributes.map((attr) =&gt; {
1031
- var attrValue;
1032
- if (attr.hasOwnProperty('literalValue')) {
1033
- attrValue = builder.literal(attr.literalValue);
1034
- } else if (attr.value == null) {
1035
- attrValue = undefined;
1036
- } else {
1037
- let parsedExpression;
1038
- let valid = true;
1039
- try {
1040
- parsedExpression = builder.parseExpression(attr.value);
1041
- } catch(e) {
1042
- valid = false;
1043
- attributeParseErrors.push('Invalid JavaScript expression for attribute "' + attr.name + '": ' + e);
1044
- }
1045
- &nbsp;
1046
- if (valid) {
1047
- <span class="missing-if-branch" title="if path not taken" >I</span>if (raw) {
1048
- <span class="cstat-no" title="statement not covered" > attrValue = parsedExpression;</span>
1049
- } else {
1050
- attrValue = replacePlaceholderEscapeFuncs(parsedExpression, context);
1051
- }
1052
- } else {
1053
- attrValue = null;
1054
- }
1055
- }
1056
- &nbsp;
1057
- var attrDef = {
1058
- name: attr.name,
1059
- value: attrValue,
1060
- rawValue: attr.value
1061
- };
1062
- &nbsp;
1063
- if (attr.argument) {
1064
- // TODO Do something with the argument pos
1065
- attrDef.argument = attr.argument.value;
1066
- }
1067
- &nbsp;
1068
- return attrDef;
1069
- })
1070
- };
1071
- &nbsp;
1072
- var node;
1073
- &nbsp;
1074
- <span class="missing-if-branch" title="if path not taken" >I</span>if (raw) {
1075
- &nbsp;
1076
- <span class="cstat-no" title="statement not covered" > node = builder.htmlElement(elDef);</span>
1077
- <span class="cstat-no" title="statement not covered" > node.pos = elDef.pos;</span>
1078
- &nbsp;
1079
- <span class="cstat-no" title="statement not covered" > let taglibLookup = this.context.taglibLookup;</span>
1080
- <span class="cstat-no" title="statement not covered" > let tagDef = taglibLookup.getTag(tagName);</span>
1081
- <span class="cstat-no" title="statement not covered" > node.tagDef = tagDef;</span>
1082
- } else {
1083
- node = this.context.createNodeForEl(elDef);
1084
- }
1085
- &nbsp;
1086
- if (attributeParseErrors.length) {
1087
- &nbsp;
1088
- attributeParseErrors.forEach((e) =&gt; {
1089
- context.addError(node, e);
1090
- });
1091
- }
1092
- &nbsp;
1093
- <span class="missing-if-branch" title="if path not taken" >I</span>if (raw) {
1094
- <span class="cstat-no" title="statement not covered" > if (el.shorthandId) {</span>
1095
- <span class="cstat-no" title="statement not covered" > let parsed = builder.parseExpression(el.shorthandId.value);</span>
1096
- <span class="cstat-no" title="statement not covered" > node.rawShorthandId = parsed.value;</span>
1097
- }
1098
- &nbsp;
1099
- <span class="cstat-no" title="statement not covered" > if (el.shorthandClassNames) {</span>
1100
- <span class="cstat-no" title="statement not covered" > node.rawShorthandClassNames = el.shorthandClassNames.map((className) =&gt; {</span>
1101
- <span class="cstat-no" title="statement not covered" > let parsed = builder.parseExpression(className.value);</span>
1102
- <span class="cstat-no" title="statement not covered" > return parsed.value;</span>
1103
- });
1104
- }
1105
- } else {
1106
- if (el.shorthandClassNames) {
1107
- mergeShorthandClassNames(node, el.shorthandClassNames, context);
1108
- }
1109
- &nbsp;
1110
- if (el.shorthandId) {
1111
- <span class="missing-if-branch" title="if path not taken" >I</span>if (node.hasAttribute('id')) {
1112
- <span class="cstat-no" title="statement not covered" > context.addError(node, 'A shorthand ID cannot be used in conjunction with the "id" attribute');</span>
1113
- } else {
1114
- node.setAttributeValue('id', builder.parseExpression(el.shorthandId.value));
1115
- }
1116
- }
1117
- }
1118
- &nbsp;
1119
- this.parentNode.appendChild(node);
1120
- &nbsp;
1121
- this.stack.push({
1122
- node: node,
1123
- tag: null
1124
- });
1125
- }
1126
- &nbsp;
1127
- handleEndElement(elementName) {
1128
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.raw !== true) {
1129
- if (elementName === 'marko-compiler-options') {
1130
- return;
1131
- }
1132
- }
1133
- &nbsp;
1134
- this.prevTextNode = null;
1135
- &nbsp;
1136
- this.stack.pop();
1137
- &nbsp;
1138
- &nbsp;
1139
- }
1140
- &nbsp;
1141
- handleComment(comment) {
1142
- this.prevTextNode = null;
1143
- &nbsp;
1144
- var builder = this.context.builder;
1145
- &nbsp;
1146
- var preserveComment = this.context.isPreserveComments() ||
1147
- isIEConditionalComment(comment);
1148
- &nbsp;
1149
- if (this.raw || preserveComment) {
1150
- var commentNode = builder.htmlComment(builder.literal(comment));
1151
- this.parentNode.appendChild(commentNode);
1152
- }
1153
- }
1154
- &nbsp;
1155
- handleDeclaration<span class="fstat-no" title="function not covered" >(value) {</span>
1156
- <span class="cstat-no" title="statement not covered" > this.prevTextNode = null;</span>
1157
- &nbsp;
1158
- <span class="cstat-no" title="statement not covered" > var builder = this.context.builder;</span>
1159
- &nbsp;
1160
- <span class="cstat-no" title="statement not covered" > var declarationNode = builder.declaration(builder.literal(value));</span>
1161
- <span class="cstat-no" title="statement not covered" > this.parentNode.appendChild(declarationNode);</span>
1162
- }
1163
- &nbsp;
1164
- handleDocumentType(value) {
1165
- this.prevTextNode = null;
1166
- &nbsp;
1167
- var builder = this.context.builder;
1168
- &nbsp;
1169
- var docTypeNode = builder.documentType(builder.literal(value));
1170
- this.parentNode.appendChild(docTypeNode);
1171
- }
1172
- &nbsp;
1173
- handleBodyTextPlaceholder(expression, escape) {
1174
- this.prevTextNode = null;
1175
- var builder = this.context.builder;
1176
- var parsedExpression = builder.parseExpression(expression);
1177
- var preserveWhitespace = true;
1178
- &nbsp;
1179
- var text = builder.text(parsedExpression, escape, preserveWhitespace);
1180
- this.parentNode.appendChild(text);
1181
- }
1182
- &nbsp;
1183
- handleScriptlet(code) {
1184
- this.prevTextNode = null;
1185
- var builder = this.context.builder;
1186
- var scriptlet = builder.scriptlet(code);
1187
- this.parentNode.appendChild(scriptlet);
1188
- }
1189
- &nbsp;
1190
- handleError(event) {
1191
- this.context.addError({
1192
- message: event.message,
1193
- code: event.code,
1194
- pos: event.pos,
1195
- endPos: event.endPos
1196
- });
1197
- }
1198
- &nbsp;
1199
- get parentNode() {
1200
- var last = this.stack[this.stack.length-1];
1201
- return last.node;
1202
- }
1203
- &nbsp;
1204
- getParserStateForTag(el) {
1205
- var attributes = el.attributes;
1206
- &nbsp;
1207
- for (var i=0; i&lt;attributes.length; i++) {
1208
- var attr = attributes[i];
1209
- var attrName = attr.name;
1210
- if (attrName === 'marko-body') {
1211
- var parseMode;
1212
- &nbsp;
1213
- <span class="missing-if-branch" title="else path not taken" >E</span>if (attr.literalValue) {
1214
- parseMode = attr.literalValue;
1215
- }
1216
- &nbsp;
1217
- <span class="missing-if-branch" title="else path not taken" >E</span>if (parseMode === 'static-text' ||
1218
- parseMode === 'parsed-text' ||
1219
- <span class="branch-2 cbranch-no" title="branch not covered" > parseMode === 'html')</span> {
1220
- return parseMode;
1221
- } else {
1222
- <span class="cstat-no" title="statement not covered" > this.context.addError({</span>
1223
- message: 'Value for "marko-body" should be one of the following: "static-text", "parsed-text", "html"',
1224
- code: 'ERR_INVALID_ATTR'
1225
- });
1226
- <span class="cstat-no" title="statement not covered" > return;</span>
1227
- }
1228
- } else if (attrName === 'marko-init') {
1229
- return 'static-text';
1230
- }
1231
- }
1232
- &nbsp;
1233
- var tagName = el.tagName;
1234
- var tagDef = this.context.getTagDef(tagName);
1235
- &nbsp;
1236
- if (tagDef) {
1237
- var body = tagDef.body;
1238
- if (body) {
1239
- return body; // 'parsed-text' | 'static-text' | 'html'
1240
- }
1241
- }
1242
- &nbsp;
1243
- return null; // Default parse state
1244
- }
1245
- &nbsp;
1246
- isOpenTagOnly(tagName) {
1247
- var tagDef = this.context.getTagDef(tagName);
1248
- return tagDef &amp;&amp; tagDef.openTagOnly;
1249
- }
1250
- }
1251
- &nbsp;
1252
- module.exports = Parser;</pre></td></tr>
1253
- </table></pre>
1254
- <div class='push'></div><!-- for sticky footer -->
1255
- </div><!-- /wrapper -->
1256
- <div class='footer quiet pad2 space-top1 center small'>
1257
- Code coverage
1258
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Oct 18 2016 14:11:32 GMT-0700 (PDT)
1259
- </div>
1260
- </div>
1261
- <script src="../../prettify.js"></script>
1262
- <script>
1263
- window.onload = function () {
1264
- if (typeof prettyPrint === 'function') {
1265
- prettyPrint();
1266
- }
1267
- };
1268
- </script>
1269
- <script src="../../sorter.js"></script>
1270
- </body>
1271
- </html>