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,833 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <title>Code coverage report for marko-v4/compiler/util/parseJavaScript.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/util/</a> parseJavaScript.js
20
- </h1>
21
- <div class='clearfix'>
22
- <div class='fl pad1y space-right2'>
23
- <span class="strong">73.91% </span>
24
- <span class="quiet">Statements</span>
25
- <span class='fraction'>102/138</span>
26
- </div>
27
- <div class='fl pad1y space-right2'>
28
- <span class="strong">60.87% </span>
29
- <span class="quiet">Branches</span>
30
- <span class='fraction'>56/92</span>
31
- </div>
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Functions</span>
35
- <span class='fraction'>2/2</span>
36
- </div>
37
- <div class='fl pad1y space-right2'>
38
- <span class="strong">73.91% </span>
39
- <span class="quiet">Lines</span>
40
- <span class='fraction'>102/138</span>
41
- </div>
42
- </div>
43
- </div>
44
- <div class='status-line medium'></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</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-yes">1×</span>
304
- <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">1×</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-yes">1×</span>
308
- <span class="cline-any cline-yes">4667×</span>
309
- <span class="cline-any cline-yes">4667×</span>
310
- <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-yes">1×</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-yes">28584×</span>
314
- <span class="cline-any cline-yes">2368×</span>
315
- <span class="cline-any cline-yes">2368×</span>
316
- <span class="cline-any cline-yes">2566×</span>
317
- <span class="cline-any cline-yes">2566×</span>
318
- <span class="cline-any cline-no">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-yes">2566×</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-yes">2368×</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-yes">26216×</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-yes">155×</span>
328
- <span class="cline-any cline-yes">155×</span>
329
- <span class="cline-any cline-no">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-yes">155×</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-yes">674×</span>
335
- <span class="cline-any cline-yes">674×</span>
336
- <span class="cline-any cline-no">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-yes">674×</span>
340
- <span class="cline-any cline-yes">674×</span>
341
- <span class="cline-any cline-no">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">674×</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">144×</span>
348
- <span class="cline-any cline-yes">144×</span>
349
- <span class="cline-any cline-no">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">144×</span>
353
- <span class="cline-any cline-yes">144×</span>
354
- <span class="cline-any cline-no">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-yes">144×</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-yes">2145×</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-yes">2145×</span>
363
- <span class="cline-any cline-no">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">2145×</span>
367
- <span class="cline-any cline-yes">2145×</span>
368
- <span class="cline-any cline-no">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">2145×</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-yes">33×</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-yes">33×</span>
377
- <span class="cline-any cline-no">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-yes">33×</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-yes">33×</span>
383
- <span class="cline-any cline-no">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-yes">33×</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-yes">33×</span>
389
- <span class="cline-any cline-no">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-yes">33×</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">4630×</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-no">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-no">&nbsp;</span>
402
- <span class="cline-any cline-no">&nbsp;</span>
403
- <span class="cline-any cline-no">&nbsp;</span>
404
- <span class="cline-any cline-no">&nbsp;</span>
405
- <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-no">&nbsp;</span>
409
- <span class="cline-any cline-no">&nbsp;</span>
410
- <span class="cline-any cline-no">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-no">&nbsp;</span>
414
- <span class="cline-any cline-no">&nbsp;</span>
415
- <span class="cline-any cline-no">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-no">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-yes">8911×</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-yes">1864×</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-yes">1864×</span>
427
- <span class="cline-any cline-yes">2×</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-yes">1862×</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-yes">1864×</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">21×</span>
436
- <span class="cline-any cline-yes">21×</span>
437
- <span class="cline-any cline-no">&nbsp;</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-yes">21×</span>
441
- <span class="cline-any cline-yes">21×</span>
442
- <span class="cline-any cline-no">&nbsp;</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">21×</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-yes">2792×</span>
449
- <span class="cline-any cline-yes">2792×</span>
450
- <span class="cline-any cline-no">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-yes">2792×</span>
454
- <span class="cline-any cline-yes">2792×</span>
455
- <span class="cline-any cline-no">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-yes">2792×</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">4×</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-yes">4×</span>
464
- <span class="cline-any cline-no">&nbsp;</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">4×</span>
468
- <span class="cline-any cline-yes">4×</span>
469
- <span class="cline-any cline-no">&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">4×</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-yes">4634×</span>
476
- <span class="cline-any cline-yes">4634×</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-no">&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-yes">64×</span>
482
- <span class="cline-any cline-yes">64×</span>
483
- <span class="cline-any cline-no">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-yes">64×</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-yes">103×</span>
489
- <span class="cline-any cline-yes">103×</span>
490
- <span class="cline-any cline-no">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-yes">103×</span>
493
- <span class="cline-any cline-yes">103×</span>
494
- <span class="cline-any cline-no">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-yes">103×</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-yes">2×</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-yes">12×</span>
503
- <span class="cline-any cline-yes">12×</span>
504
- <span class="cline-any cline-no">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-yes">12×</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">24×</span>
511
- <span class="cline-any cline-yes">24×</span>
512
- <span class="cline-any cline-no">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-yes">24×</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-yes">4×</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-yes">4667×</span>
523
- <span class="cline-any cline-yes">4667×</span>
524
- <span class="cline-any cline-yes">4667×</span>
525
- <span class="cline-any cline-yes">3993×</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-yes">4667×</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-yes">33×</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-no">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-yes">33×</span>
534
- <span class="cline-any cline-yes">33×</span>
535
- <span class="cline-any cline-yes">33×</span>
536
- <span class="cline-any cline-yes">33×</span>
537
- <span class="cline-any cline-yes">33×</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-yes">33×</span>
540
- <span class="cline-any cline-yes">33×</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-yes">33×</span>
543
- <span class="cline-any cline-yes">33×</span>
544
- <span class="cline-any cline-yes">33×</span>
545
- <span class="cline-any cline-yes">33×</span>
546
- <span class="cline-any cline-yes">33×</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-yes">4634×</span>
550
- <span class="cline-any cline-yes">4634×</span>
551
- <span class="cline-any cline-yes">4×</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">4634×</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">1×</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
559
- var ok = require('assert').ok;
560
- &nbsp;
561
- const esprima = require('esprima');
562
- &nbsp;
563
- function parseExpression(src, builder, isExpression) {
564
- ok(typeof src === 'string', '"src" should be a string expression');
565
- ok(builder, '"builder" is required');
566
- &nbsp;
567
- function convert(node) {
568
- &nbsp;
569
- if (Array.isArray(node)) {
570
- let nodes = node;
571
- for (let i=0; i&lt;nodes.length; i++) {
572
- var converted = convert(nodes[i]);
573
- <span class="missing-if-branch" title="if path not taken" >I</span>if (converted == null) {
574
- <span class="cstat-no" title="statement not covered" > return null;</span>
575
- }
576
- nodes[i] = converted;
577
- }
578
- return nodes;
579
- }
580
- &nbsp;
581
- switch(node.type) {
582
- case 'ArrayExpression': {
583
- let elements = convert(node.elements);
584
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!elements) {
585
- <span class="cstat-no" title="statement not covered" > return null;</span>
586
- }
587
- return builder.arrayExpression(elements);
588
- }
589
- case 'AssignmentExpression': {
590
- let left = convert(node.left);
591
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!left) {
592
- <span class="cstat-no" title="statement not covered" > return null;</span>
593
- }
594
- &nbsp;
595
- let right = convert(node.right);
596
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!right) {
597
- <span class="cstat-no" title="statement not covered" > return null;</span>
598
- }
599
- &nbsp;
600
- return builder.assignment(left, right, node.operator);
601
- }
602
- case 'BinaryExpression': {
603
- let left = convert(node.left);
604
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!left) {
605
- <span class="cstat-no" title="statement not covered" > return null;</span>
606
- }
607
- &nbsp;
608
- let right = convert(node.right);
609
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!right) {
610
- <span class="cstat-no" title="statement not covered" > return null;</span>
611
- }
612
- &nbsp;
613
- return builder.binaryExpression(left, node.operator, right);
614
- }
615
- case 'CallExpression': {
616
- let callee = convert(node.callee);
617
- &nbsp;
618
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!callee) {
619
- <span class="cstat-no" title="statement not covered" > return null;</span>
620
- }
621
- &nbsp;
622
- let args = convert(node.arguments);
623
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!args) {
624
- <span class="cstat-no" title="statement not covered" > return null;</span>
625
- }
626
- &nbsp;
627
- return builder.functionCall(callee, args);
628
- }
629
- case 'ConditionalExpression': {
630
- let test = convert(node.test);
631
- &nbsp;
632
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!test) {
633
- <span class="cstat-no" title="statement not covered" > return null;</span>
634
- }
635
- &nbsp;
636
- let consequent = convert(node.consequent);
637
- &nbsp;
638
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!consequent) {
639
- <span class="cstat-no" title="statement not covered" > return null;</span>
640
- }
641
- &nbsp;
642
- let alternate = convert(node.alternate);
643
- &nbsp;
644
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!alternate) {
645
- <span class="cstat-no" title="statement not covered" > return null;</span>
646
- }
647
- &nbsp;
648
- return builder.conditionalExpression(test, consequent, alternate);
649
- }
650
- case 'ExpressionStatement': {
651
- return convert(node.expression);
652
- }
653
- <span class="branch-6 cbranch-no" title="branch not covered" > case 'FunctionDeclaration':</span>
654
- <span class="branch-7 cbranch-no" title="branch not covered" > case 'FunctionExpression': {</span>
655
- <span class="cstat-no" title="statement not covered" > let name = null;</span>
656
- &nbsp;
657
- <span class="cstat-no" title="statement not covered" > if (node.id) {</span>
658
- <span class="cstat-no" title="statement not covered" > name = convert(node.id);</span>
659
- <span class="cstat-no" title="statement not covered" > if (name == null) {</span>
660
- <span class="cstat-no" title="statement not covered" > return null;</span>
661
- }
662
- }
663
- &nbsp;
664
- <span class="cstat-no" title="statement not covered" > let params = convert(node.params);</span>
665
- <span class="cstat-no" title="statement not covered" > if (!params) {</span>
666
- <span class="cstat-no" title="statement not covered" > return null;</span>
667
- }
668
- &nbsp;
669
- <span class="cstat-no" title="statement not covered" > let body = convert(node.body);</span>
670
- <span class="cstat-no" title="statement not covered" > if (!body) {</span>
671
- <span class="cstat-no" title="statement not covered" > return null;</span>
672
- }
673
- &nbsp;
674
- <span class="cstat-no" title="statement not covered" > return builder.functionDeclaration(name, params, body);</span>
675
- }
676
- case 'Identifier': {
677
- return builder.identifier(node.name);
678
- }
679
- case 'Literal': {
680
- let literalValue;
681
- &nbsp;
682
- if (node.regex) {
683
- literalValue = new RegExp(node.regex.pattern, 'gi');
684
- } else {
685
- literalValue = node.value;
686
- }
687
- &nbsp;
688
- return builder.literal(literalValue);
689
- }
690
- case 'LogicalExpression': {
691
- let left = convert(node.left);
692
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!left) {
693
- <span class="cstat-no" title="statement not covered" > return null;</span>
694
- }
695
- &nbsp;
696
- let right = convert(node.right);
697
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!right) {
698
- <span class="cstat-no" title="statement not covered" > return null;</span>
699
- }
700
- &nbsp;
701
- return builder.logicalExpression(left, node.operator, right);
702
- }
703
- case 'MemberExpression': {
704
- let object = convert(node.object);
705
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!object) {
706
- <span class="cstat-no" title="statement not covered" > return null;</span>
707
- }
708
- &nbsp;
709
- let property = convert(node.property);
710
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!property) {
711
- <span class="cstat-no" title="statement not covered" > return null;</span>
712
- }
713
- &nbsp;
714
- return builder.memberExpression(object, property, node.computed);
715
- }
716
- case 'NewExpression': {
717
- let callee = convert(node.callee);
718
- &nbsp;
719
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!callee) {
720
- <span class="cstat-no" title="statement not covered" > return null;</span>
721
- }
722
- &nbsp;
723
- let args = convert(node.arguments);
724
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!args) {
725
- <span class="cstat-no" title="statement not covered" > return null;</span>
726
- }
727
- &nbsp;
728
- return builder.newExpression(callee, args);
729
- }
730
- case 'Program': {
731
- <span class="missing-if-branch" title="else path not taken" >E</span>if (node.body &amp;&amp; node.body.length === 1) {
732
- return convert(node.body[0]);
733
- }
734
- <span class="cstat-no" title="statement not covered" > return null;</span>
735
- }
736
- case 'ObjectExpression': {
737
- let properties = convert(node.properties);
738
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!properties) {
739
- <span class="cstat-no" title="statement not covered" > return null;</span>
740
- }
741
- return builder.objectExpression(properties);
742
- }
743
- case 'Property': {
744
- let key = convert(node.key);
745
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!key) {
746
- <span class="cstat-no" title="statement not covered" > return null;</span>
747
- }
748
- let value = convert(node.value);
749
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!value) {
750
- <span class="cstat-no" title="statement not covered" > return null;</span>
751
- }
752
- return builder.property(key, value);
753
- }
754
- case 'ThisExpression': {
755
- return builder.thisExpression();
756
- }
757
- case 'UnaryExpression': {
758
- let argument = convert(node.argument);
759
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!argument) {
760
- <span class="cstat-no" title="statement not covered" > return null;</span>
761
- }
762
- &nbsp;
763
- return builder.unaryExpression(argument, node.operator, node.prefix);
764
- }
765
- case 'UpdateExpression': {
766
- let argument = convert(node.argument);
767
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!argument) {
768
- <span class="cstat-no" title="statement not covered" > return null;</span>
769
- }
770
- &nbsp;
771
- return builder.updateExpression(argument, node.operator, node.prefix);
772
- }
773
- default:
774
- return null;
775
- }
776
- }
777
- &nbsp;
778
- let jsAST;
779
- try {
780
- if (isExpression) {
781
- src = '(' + src + ')';
782
- }
783
- jsAST = esprima.parse(src);
784
- } catch(e) {
785
- <span class="missing-if-branch" title="if path not taken" >I</span>if (e.index == null) {
786
- // Doesn't look like an Esprima parse error... just rethrow the exception
787
- <span class="cstat-no" title="statement not covered" > throw e;</span>
788
- }
789
- var errorIndex = e.index;
790
- var errorMessage = '\n' + e.description;
791
- <span class="missing-if-branch" title="else path not taken" >E</span>if (errorIndex != null &amp;&amp; errorIndex &gt;= 0) {
792
- <span class="missing-if-branch" title="else path not taken" >E</span>if (isExpression) {
793
- errorIndex--; // Account for extra paren added to start
794
- }
795
- errorMessage += ': ';
796
- errorMessage += src + '\n'+ new Array(errorMessage.length + errorIndex + 1).join(" ") + '^';
797
- }
798
- var wrappedError = new Error(errorMessage);
799
- wrappedError.index = errorIndex;
800
- wrappedError.src = src;
801
- wrappedError.code = 'ERR_INVALID_JAVASCRIPT_EXPRESSION';
802
- throw wrappedError;
803
- }
804
- &nbsp;
805
- var converted = convert(jsAST);
806
- if (converted == null) {
807
- converted = builder.expression(src);
808
- }
809
- &nbsp;
810
- return converted;
811
- }
812
- &nbsp;
813
- module.exports = parseExpression;
814
- &nbsp;</pre></td></tr>
815
- </table></pre>
816
- <div class='push'></div><!-- for sticky footer -->
817
- </div><!-- /wrapper -->
818
- <div class='footer quiet pad2 space-top1 center small'>
819
- Code coverage
820
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Oct 18 2016 14:11:32 GMT-0700 (PDT)
821
- </div>
822
- </div>
823
- <script src="../../../prettify.js"></script>
824
- <script>
825
- window.onload = function () {
826
- if (typeof prettyPrint === 'function') {
827
- prettyPrint();
828
- }
829
- };
830
- </script>
831
- <script src="../../../sorter.js"></script>
832
- </body>
833
- </html>