marko 2.11.1 → 2.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/.npmignore +0 -1
- package/coverage/coverage.json +0 -1
- package/coverage/lcov-report/base.css +0 -213
- package/coverage/lcov-report/index.html +0 -496
- package/coverage/lcov-report/marko-v4/bin/index.html +0 -93
- package/coverage/lcov-report/marko-v4/bin/markoc.js.html +0 -1160
- package/coverage/lcov-report/marko-v4/browser-refresh/index.html +0 -93
- package/coverage/lcov-report/marko-v4/browser-refresh/index.js.html +0 -191
- package/coverage/lcov-report/marko-v4/compiler/Builder.js.html +0 -1859
- package/coverage/lcov-report/marko-v4/compiler/CodeGenerator.js.html +0 -998
- package/coverage/lcov-report/marko-v4/compiler/CodeWriter.js.html +0 -851
- package/coverage/lcov-report/marko-v4/compiler/CompileContext.js.html +0 -1955
- package/coverage/lcov-report/marko-v4/compiler/CompileError.js.html +0 -206
- package/coverage/lcov-report/marko-v4/compiler/Compiler.js.html +0 -473
- package/coverage/lcov-report/marko-v4/compiler/HtmlJsParser.js.html +0 -341
- package/coverage/lcov-report/marko-v4/compiler/InlineCompiler.js.html +0 -317
- package/coverage/lcov-report/marko-v4/compiler/Parser.js.html +0 -1271
- package/coverage/lcov-report/marko-v4/compiler/Walker.js.html +0 -521
- package/coverage/lcov-report/marko-v4/compiler/ast/ArrayContainer.js.html +0 -653
- package/coverage/lcov-report/marko-v4/compiler/ast/ArrayExpression.js.html +0 -278
- package/coverage/lcov-report/marko-v4/compiler/ast/Assignment.js.html +0 -299
- package/coverage/lcov-report/marko-v4/compiler/ast/AttributePlaceholder.js.html +0 -173
- package/coverage/lcov-report/marko-v4/compiler/ast/BinaryExpression.js.html +0 -428
- package/coverage/lcov-report/marko-v4/compiler/ast/Code.js.html +0 -149
- package/coverage/lcov-report/marko-v4/compiler/ast/ConditionalExpression.js.html +0 -239
- package/coverage/lcov-report/marko-v4/compiler/ast/Container.js.html +0 -101
- package/coverage/lcov-report/marko-v4/compiler/ast/ContainerNode.js.html +0 -122
- package/coverage/lcov-report/marko-v4/compiler/ast/CustomTag.js.html +0 -1250
- package/coverage/lcov-report/marko-v4/compiler/ast/Declaration.js.html +0 -146
- package/coverage/lcov-report/marko-v4/compiler/ast/DocumentType.js.html +0 -146
- package/coverage/lcov-report/marko-v4/compiler/ast/Else.js.html +0 -161
- package/coverage/lcov-report/marko-v4/compiler/ast/ElseIf.js.html +0 -152
- package/coverage/lcov-report/marko-v4/compiler/ast/Expression.js.html +0 -152
- package/coverage/lcov-report/marko-v4/compiler/ast/ForEach.js.html +0 -314
- package/coverage/lcov-report/marko-v4/compiler/ast/ForEachProp.js.html +0 -290
- package/coverage/lcov-report/marko-v4/compiler/ast/ForRange.js.html +0 -374
- package/coverage/lcov-report/marko-v4/compiler/ast/ForStatement.js.html +0 -245
- package/coverage/lcov-report/marko-v4/compiler/ast/FunctionCall.js.html +0 -374
- package/coverage/lcov-report/marko-v4/compiler/ast/FunctionDeclaration.js.html +0 -296
- package/coverage/lcov-report/marko-v4/compiler/ast/Html.js.html +0 -311
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/html/generateCode.js.html +0 -473
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/html/index.html +0 -93
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/index.html +0 -93
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/index.js.html +0 -317
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/vdom/generateCode.js.html +0 -128
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttribute/vdom/index.html +0 -93
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlAttributeCollection.js.html +0 -521
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlComment.js.html +0 -182
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/html/EndTag.js.html +0 -131
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/html/StartTag.js.html +0 -227
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/html/generateCode.js.html +0 -299
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/html/index.html +0 -119
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/index.html +0 -93
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/index.js.html +0 -578
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/vdom/EndElementVDOM.js.html +0 -104
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/vdom/HtmlElementVDOM.js.html +0 -620
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/vdom/generateCode.js.html +0 -326
- package/coverage/lcov-report/marko-v4/compiler/ast/HtmlElement/vdom/index.html +0 -119
- package/coverage/lcov-report/marko-v4/compiler/ast/Identifier.js.html +0 -137
- package/coverage/lcov-report/marko-v4/compiler/ast/If.js.html +0 -347
- package/coverage/lcov-report/marko-v4/compiler/ast/InvokeMacro.js.html +0 -425
- package/coverage/lcov-report/marko-v4/compiler/ast/Literal.js.html +0 -320
- package/coverage/lcov-report/marko-v4/compiler/ast/LogicalExpression.js.html +0 -359
- package/coverage/lcov-report/marko-v4/compiler/ast/Macro.js.html +0 -176
- package/coverage/lcov-report/marko-v4/compiler/ast/MemberExpression.js.html +0 -308
- package/coverage/lcov-report/marko-v4/compiler/ast/NewExpression.js.html +0 -395
- package/coverage/lcov-report/marko-v4/compiler/ast/Node.js.html +0 -1235
- package/coverage/lcov-report/marko-v4/compiler/ast/ObjectExpression.js.html +0 -290
- package/coverage/lcov-report/marko-v4/compiler/ast/Program.js.html +0 -134
- package/coverage/lcov-report/marko-v4/compiler/ast/Property.js.html +0 -257
- package/coverage/lcov-report/marko-v4/compiler/ast/Return.js.html +0 -170
- package/coverage/lcov-report/marko-v4/compiler/ast/Scriptlet.js.html +0 -152
- package/coverage/lcov-report/marko-v4/compiler/ast/SelfInvokingFunction.js.html +0 -155
- package/coverage/lcov-report/marko-v4/compiler/ast/TemplateRoot.js.html +0 -344
- package/coverage/lcov-report/marko-v4/compiler/ast/Text/html/generateCode.js.html +0 -245
- package/coverage/lcov-report/marko-v4/compiler/ast/Text/html/index.html +0 -93
- package/coverage/lcov-report/marko-v4/compiler/ast/Text/index.html +0 -93
- package/coverage/lcov-report/marko-v4/compiler/ast/Text/index.js.html +0 -215
- package/coverage/lcov-report/marko-v4/compiler/ast/Text/vdom/TextVDOM.js.html +0 -407
- package/coverage/lcov-report/marko-v4/compiler/ast/Text/vdom/generateCode.js.html +0 -179
- package/coverage/lcov-report/marko-v4/compiler/ast/Text/vdom/index.html +0 -106
- package/coverage/lcov-report/marko-v4/compiler/ast/ThisExpression.js.html +0 -131
- package/coverage/lcov-report/marko-v4/compiler/ast/UnaryExpression.js.html +0 -365
- package/coverage/lcov-report/marko-v4/compiler/ast/UpdateExpression.js.html +0 -341
- package/coverage/lcov-report/marko-v4/compiler/ast/VariableDeclarator.js.html +0 -221
- package/coverage/lcov-report/marko-v4/compiler/ast/Vars.js.html +0 -290
- package/coverage/lcov-report/marko-v4/compiler/ast/WhileStatement.js.html +0 -173
- package/coverage/lcov-report/marko-v4/compiler/ast/index.html +0 -678
- package/coverage/lcov-report/marko-v4/compiler/config.js.html +0 -194
- package/coverage/lcov-report/marko-v4/compiler/index.html +0 -236
- package/coverage/lcov-report/marko-v4/compiler/index.js.html +0 -695
- package/coverage/lcov-report/marko-v4/compiler/taglib-finder/index-browser.js.html +0 -158
- package/coverage/lcov-report/marko-v4/compiler/taglib-finder/index.html +0 -106
- package/coverage/lcov-report/marko-v4/compiler/taglib-finder/index.js.html +0 -632
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/DependencyChain.js.html +0 -113
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Attribute.js.html +0 -155
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/ImportedVariable.js.html +0 -140
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/NestedVariable.js.html +0 -134
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Property.js.html +0 -140
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Tag.js.html +0 -797
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Taglib.js.html +0 -440
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/Transformer.js.html +0 -236
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/index.html +0 -184
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/Taglib/index.js.html +0 -65
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/handleAttributes.js.html +0 -161
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/index.html +0 -236
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/index.js.html +0 -191
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/json-file-reader-browser.js.html +0 -143
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/json-file-reader.js.html +0 -155
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/loader-attribute.js.html +0 -659
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/loader-tag.js.html +0 -1931
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/loader-taglib.js.html +0 -1010
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/loader.js.html +0 -119
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/scanTagsDir-browser.js.html +0 -119
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/scanTagsDir.js.html +0 -548
- package/coverage/lcov-report/marko-v4/compiler/taglib-loader/tag-def-from-code.js.html +0 -287
- package/coverage/lcov-report/marko-v4/compiler/taglib-lookup/TaglibLookup.js.html +0 -1205
- package/coverage/lcov-report/marko-v4/compiler/taglib-lookup/index.html +0 -106
- package/coverage/lcov-report/marko-v4/compiler/taglib-lookup/index.js.html +0 -302
- package/coverage/lcov-report/marko-v4/compiler/util/PosInfo.js.html +0 -140
- package/coverage/lcov-report/marko-v4/compiler/util/UniqueVars.js.html +0 -227
- package/coverage/lcov-report/marko-v4/compiler/util/adjustIndent.js.html +0 -272
- package/coverage/lcov-report/marko-v4/compiler/util/deresolve-browser.js.html +0 -119
- package/coverage/lcov-report/marko-v4/compiler/util/deresolve.js.html +0 -113
- package/coverage/lcov-report/marko-v4/compiler/util/fingerprint.js.html +0 -83
- package/coverage/lcov-report/marko-v4/compiler/util/index.html +0 -366
- package/coverage/lcov-report/marko-v4/compiler/util/isCompoundExpression.js.html +0 -92
- package/coverage/lcov-report/marko-v4/compiler/util/isJavaScriptReservedWord.js.html +0 -80
- package/coverage/lcov-report/marko-v4/compiler/util/isValidJavaScriptIdentifier.js.html +0 -80
- package/coverage/lcov-report/marko-v4/compiler/util/isValidJavaScriptVarName.js.html +0 -95
- package/coverage/lcov-report/marko-v4/compiler/util/javaScriptReservedWords.js.html +0 -260
- package/coverage/lcov-report/marko-v4/compiler/util/macros.js.html +0 -326
- package/coverage/lcov-report/marko-v4/compiler/util/parseExpression.js.html +0 -77
- package/coverage/lcov-report/marko-v4/compiler/util/parseJavaScript.js.html +0 -833
- package/coverage/lcov-report/marko-v4/compiler/util/parseJavaScriptArgs.js.html +0 -101
- package/coverage/lcov-report/marko-v4/compiler/util/parseStatement.js.html +0 -77
- package/coverage/lcov-report/marko-v4/compiler/util/removeComments.js.html +0 -221
- package/coverage/lcov-report/marko-v4/compiler/util/removeDashes.js.html +0 -77
- package/coverage/lcov-report/marko-v4/compiler/util/resolve-browser.js.html +0 -125
- package/coverage/lcov-report/marko-v4/compiler/util/resolve.js.html +0 -128
- package/coverage/lcov-report/marko-v4/compiler/util/safeVarName.js.html +0 -116
- package/coverage/lcov-report/marko-v4/compiler/util/tokenizer.js.html +0 -173
- package/coverage/lcov-report/marko-v4/compiler/util/vdom/VDOMOptimizer.js.html +0 -560
- package/coverage/lcov-report/marko-v4/compiler/util/vdom/index.html +0 -119
- package/coverage/lcov-report/marko-v4/compiler/util/vdom/index.js.html +0 -119
- package/coverage/lcov-report/marko-v4/compiler/util/vdom/isStaticValue.js.html +0 -212
- package/coverage/lcov-report/marko-v4/defineRenderer.js.html +0 -206
- package/coverage/lcov-report/marko-v4/express.js.html +0 -161
- package/coverage/lcov-report/marko-v4/helpers/empty.js.html +0 -77
- package/coverage/lcov-report/marko-v4/helpers/index.html +0 -106
- package/coverage/lcov-report/marko-v4/helpers/notEmpty.js.html +0 -95
- package/coverage/lcov-report/marko-v4/hot-reload/index.html +0 -93
- package/coverage/lcov-report/marko-v4/hot-reload/index.js.html +0 -524
- package/coverage/lcov-report/marko-v4/index.html +0 -158
- package/coverage/lcov-report/marko-v4/node-require-browser.js.html +0 -113
- package/coverage/lcov-report/marko-v4/node-require.js.html +0 -434
- package/coverage/lcov-report/marko-v4/runtime/deprecate.js.html +0 -131
- package/coverage/lcov-report/marko-v4/runtime/forEachPropStatusVar.js.html +0 -158
- package/coverage/lcov-report/marko-v4/runtime/helpers.js.html +0 -839
- package/coverage/lcov-report/marko-v4/runtime/html/helpers.js.html +0 -506
- package/coverage/lcov-report/marko-v4/runtime/html/index.html +0 -106
- package/coverage/lcov-report/marko-v4/runtime/html/index.js.html +0 -914
- package/coverage/lcov-report/marko-v4/runtime/index.html +0 -145
- package/coverage/lcov-report/marko-v4/runtime/inline.js.html +0 -65
- package/coverage/lcov-report/marko-v4/runtime/loader/index-browser-dynamic.js.html +0 -128
- package/coverage/lcov-report/marko-v4/runtime/loader/index-browser.js.html +0 -119
- package/coverage/lcov-report/marko-v4/runtime/loader/index.html +0 -119
- package/coverage/lcov-report/marko-v4/runtime/loader/index.js.html +0 -548
- package/coverage/lcov-report/marko-v4/runtime/stream.js.html +0 -224
- package/coverage/lcov-report/marko-v4/runtime/vdom/helpers.js.html +0 -350
- package/coverage/lcov-report/marko-v4/runtime/vdom/index.html +0 -106
- package/coverage/lcov-report/marko-v4/runtime/vdom/index.js.html +0 -893
- package/coverage/lcov-report/marko-v4/stream.js.html +0 -98
- package/coverage/lcov-report/marko-v4/taglibs/async/async-fragment-to-await-transformer.js.html +0 -221
- package/coverage/lcov-report/marko-v4/taglibs/async/await-nested-tag-transformer.js.html +0 -140
- package/coverage/lcov-report/marko-v4/taglibs/async/await-reorderer-tag.js.html +0 -278
- package/coverage/lcov-report/marko-v4/taglibs/async/await-tag-transformer.js.html +0 -353
- package/coverage/lcov-report/marko-v4/taglibs/async/await-tag.js.html +0 -779
- package/coverage/lcov-report/marko-v4/taglibs/async/client-reorder-browser.js.html +0 -65
- package/coverage/lcov-report/marko-v4/taglibs/async/client-reorder-runtime.js.html +0 -167
- package/coverage/lcov-report/marko-v4/taglibs/async/client-reorder-runtime.min.js.html +0 -65
- package/coverage/lcov-report/marko-v4/taglibs/async/client-reorder.js.html +0 -98
- package/coverage/lcov-report/marko-v4/taglibs/async/index.html +0 -197
- package/coverage/lcov-report/marko-v4/taglibs/cache/cached-fragment-tag-transformer.js.html +0 -89
- package/coverage/lcov-report/marko-v4/taglibs/cache/cached-fragment-tag.js.html +0 -266
- package/coverage/lcov-report/marko-v4/taglibs/cache/default-cache-manager.js.html +0 -173
- package/coverage/lcov-report/marko-v4/taglibs/cache/index.html +0 -119
- package/coverage/lcov-report/marko-v4/taglibs/core/assign-tag.js.html +0 -116
- package/coverage/lcov-report/marko-v4/taglibs/core/core-transformer.js.html +0 -683
- package/coverage/lcov-report/marko-v4/taglibs/core/else-if-tag.js.html +0 -140
- package/coverage/lcov-report/marko-v4/taglibs/core/else-tag.js.html +0 -170
- package/coverage/lcov-report/marko-v4/taglibs/core/for-tag.js.html +0 -131
- package/coverage/lcov-report/marko-v4/taglibs/core/if-tag.js.html +0 -140
- package/coverage/lcov-report/marko-v4/taglibs/core/include-html-tag-browser.js.html +0 -113
- package/coverage/lcov-report/marko-v4/taglibs/core/include-html-tag.js.html +0 -152
- package/coverage/lcov-report/marko-v4/taglibs/core/include-tag.js.html +0 -248
- package/coverage/lcov-report/marko-v4/taglibs/core/include-text-tag-browser.js.html +0 -113
- package/coverage/lcov-report/marko-v4/taglibs/core/include-text-tag.js.html +0 -152
- package/coverage/lcov-report/marko-v4/taglibs/core/index.html +0 -314
- package/coverage/lcov-report/marko-v4/taglibs/core/invoke-tag.js.html +0 -116
- package/coverage/lcov-report/marko-v4/taglibs/core/macro-body-tag.js.html +0 -83
- package/coverage/lcov-report/marko-v4/taglibs/core/macro-tag.js.html +0 -131
- package/coverage/lcov-report/marko-v4/taglibs/core/marko-preserve-whitespace-tag.js.html +0 -71
- package/coverage/lcov-report/marko-v4/taglibs/core/unless-tag.js.html +0 -143
- package/coverage/lcov-report/marko-v4/taglibs/core/util/createLoopNode.js.html +0 -128
- package/coverage/lcov-report/marko-v4/taglibs/core/util/index.html +0 -119
- package/coverage/lcov-report/marko-v4/taglibs/core/util/parseFor.js.html +0 -1145
- package/coverage/lcov-report/marko-v4/taglibs/core/util/parseJavaScriptIdentifier.js.html +0 -131
- package/coverage/lcov-report/marko-v4/taglibs/core/var-tag.js.html +0 -152
- package/coverage/lcov-report/marko-v4/taglibs/core/while-tag.js.html +0 -95
- package/coverage/lcov-report/marko-v4/taglibs/html/html-comment-tag.js.html +0 -146
- package/coverage/lcov-report/marko-v4/taglibs/html/index.html +0 -93
- package/coverage/lcov-report/marko-v4/taglibs/layout/index.html +0 -132
- package/coverage/lcov-report/marko-v4/taglibs/layout/placeholder-tag.js.html +0 -107
- package/coverage/lcov-report/marko-v4/taglibs/layout/put-tag.js.html +0 -77
- package/coverage/lcov-report/marko-v4/taglibs/layout/use-tag-transformer.js.html +0 -137
- package/coverage/lcov-report/marko-v4/taglibs/layout/use-tag.js.html +0 -134
- package/coverage/lcov-report/marko-v4/vdom.js.html +0 -65
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -1
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -158
- package/coverage/lcov.info +0 -13662
|
@@ -1,1250 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<title>Code coverage report for marko-v4/compiler/ast/CustomTag.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/ast/</a> CustomTag.js
|
|
20
|
-
</h1>
|
|
21
|
-
<div class='clearfix'>
|
|
22
|
-
<div class='fl pad1y space-right2'>
|
|
23
|
-
<span class="strong">93.2% </span>
|
|
24
|
-
<span class="quiet">Statements</span>
|
|
25
|
-
<span class='fraction'>192/206</span>
|
|
26
|
-
</div>
|
|
27
|
-
<div class='fl pad1y space-right2'>
|
|
28
|
-
<span class="strong">92.5% </span>
|
|
29
|
-
<span class="quiet">Branches</span>
|
|
30
|
-
<span class='fraction'>111/120</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'>12/12</span>
|
|
36
|
-
</div>
|
|
37
|
-
<div class='fl pad1y space-right2'>
|
|
38
|
-
<span class="strong">93.2% </span>
|
|
39
|
-
<span class="quiet">Lines</span>
|
|
40
|
-
<span class='fraction'>192/206</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</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
442
|
-
<span class="cline-any cline-neutral"> </span>
|
|
443
|
-
<span class="cline-any cline-yes">1×</span>
|
|
444
|
-
<span class="cline-any cline-yes">1×</span>
|
|
445
|
-
<span class="cline-any cline-yes">1×</span>
|
|
446
|
-
<span class="cline-any cline-yes">1×</span>
|
|
447
|
-
<span class="cline-any cline-neutral"> </span>
|
|
448
|
-
<span class="cline-any cline-yes">1×</span>
|
|
449
|
-
<span class="cline-any cline-yes">54×</span>
|
|
450
|
-
<span class="cline-any cline-yes">54×</span>
|
|
451
|
-
<span class="cline-any cline-yes">58×</span>
|
|
452
|
-
<span class="cline-any cline-yes">52×</span>
|
|
453
|
-
<span class="cline-any cline-neutral"> </span>
|
|
454
|
-
<span class="cline-any cline-neutral"> </span>
|
|
455
|
-
<span class="cline-any cline-yes">6×</span>
|
|
456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-neutral"> </span>
|
|
458
|
-
<span class="cline-any cline-neutral"> </span>
|
|
459
|
-
<span class="cline-any cline-yes">1×</span>
|
|
460
|
-
<span class="cline-any cline-yes">445×</span>
|
|
461
|
-
<span class="cline-any cline-yes">445×</span>
|
|
462
|
-
<span class="cline-any cline-yes">118×</span>
|
|
463
|
-
<span class="cline-any cline-yes">118×</span>
|
|
464
|
-
<span class="cline-any cline-yes">116×</span>
|
|
465
|
-
<span class="cline-any cline-yes">116×</span>
|
|
466
|
-
<span class="cline-any cline-yes">116×</span>
|
|
467
|
-
<span class="cline-any cline-yes">116×</span>
|
|
468
|
-
<span class="cline-any cline-yes">116×</span>
|
|
469
|
-
<span class="cline-any cline-no"> </span>
|
|
470
|
-
<span class="cline-any cline-no"> </span>
|
|
471
|
-
<span class="cline-any cline-no"> </span>
|
|
472
|
-
<span class="cline-any cline-neutral"> </span>
|
|
473
|
-
<span class="cline-any cline-yes">116×</span>
|
|
474
|
-
<span class="cline-any cline-yes">116×</span>
|
|
475
|
-
<span class="cline-any cline-yes">116×</span>
|
|
476
|
-
<span class="cline-any cline-no"> </span>
|
|
477
|
-
<span class="cline-any cline-no"> </span>
|
|
478
|
-
<span class="cline-any cline-no"> </span>
|
|
479
|
-
<span class="cline-any cline-neutral"> </span>
|
|
480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
481
|
-
<span class="cline-any cline-yes">116×</span>
|
|
482
|
-
<span class="cline-any cline-neutral"> </span>
|
|
483
|
-
<span class="cline-any cline-yes">116×</span>
|
|
484
|
-
<span class="cline-any cline-yes">116×</span>
|
|
485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
486
|
-
<span class="cline-any cline-yes">116×</span>
|
|
487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
489
|
-
<span class="cline-any cline-yes">116×</span>
|
|
490
|
-
<span class="cline-any cline-no"> </span>
|
|
491
|
-
<span class="cline-any cline-no"> </span>
|
|
492
|
-
<span class="cline-any cline-neutral"> </span>
|
|
493
|
-
<span class="cline-any cline-neutral"> </span>
|
|
494
|
-
<span class="cline-any cline-yes">2×</span>
|
|
495
|
-
<span class="cline-any cline-yes">2×</span>
|
|
496
|
-
<span class="cline-any cline-no"> </span>
|
|
497
|
-
<span class="cline-any cline-no"> </span>
|
|
498
|
-
<span class="cline-any cline-neutral"> </span>
|
|
499
|
-
<span class="cline-any cline-neutral"> </span>
|
|
500
|
-
<span class="cline-any cline-yes">118×</span>
|
|
501
|
-
<span class="cline-any cline-neutral"> </span>
|
|
502
|
-
<span class="cline-any cline-neutral"> </span>
|
|
503
|
-
<span class="cline-any cline-yes">445×</span>
|
|
504
|
-
<span class="cline-any cline-yes">1×</span>
|
|
505
|
-
<span class="cline-any cline-yes">1×</span>
|
|
506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
508
|
-
<span class="cline-any cline-neutral"> </span>
|
|
509
|
-
<span class="cline-any cline-yes">445×</span>
|
|
510
|
-
<span class="cline-any cline-neutral"> </span>
|
|
511
|
-
<span class="cline-any cline-neutral"> </span>
|
|
512
|
-
<span class="cline-any cline-yes">1×</span>
|
|
513
|
-
<span class="cline-any cline-yes">445×</span>
|
|
514
|
-
<span class="cline-any cline-yes">445×</span>
|
|
515
|
-
<span class="cline-any cline-neutral"> </span>
|
|
516
|
-
<span class="cline-any cline-yes">1×</span>
|
|
517
|
-
<span class="cline-any cline-yes">621×</span>
|
|
518
|
-
<span class="cline-any cline-no"> </span>
|
|
519
|
-
<span class="cline-any cline-neutral"> </span>
|
|
520
|
-
<span class="cline-any cline-neutral"> </span>
|
|
521
|
-
<span class="cline-any cline-yes">621×</span>
|
|
522
|
-
<span class="cline-any cline-yes">22×</span>
|
|
523
|
-
<span class="cline-any cline-neutral"> </span>
|
|
524
|
-
<span class="cline-any cline-neutral"> </span>
|
|
525
|
-
<span class="cline-any cline-yes">621×</span>
|
|
526
|
-
<span class="cline-any cline-yes">621×</span>
|
|
527
|
-
<span class="cline-any cline-neutral"> </span>
|
|
528
|
-
<span class="cline-any cline-yes">621×</span>
|
|
529
|
-
<span class="cline-any cline-neutral"> </span>
|
|
530
|
-
<span class="cline-any cline-neutral"> </span>
|
|
531
|
-
<span class="cline-any cline-neutral"> </span>
|
|
532
|
-
<span class="cline-any cline-yes">50×</span>
|
|
533
|
-
<span class="cline-any cline-yes">38×</span>
|
|
534
|
-
<span class="cline-any cline-neutral"> </span>
|
|
535
|
-
<span class="cline-any cline-yes">12×</span>
|
|
536
|
-
<span class="cline-any cline-neutral"> </span>
|
|
537
|
-
<span class="cline-any cline-neutral"> </span>
|
|
538
|
-
<span class="cline-any cline-yes">50×</span>
|
|
539
|
-
<span class="cline-any cline-yes">21×</span>
|
|
540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
541
|
-
<span class="cline-any cline-neutral"> </span>
|
|
542
|
-
<span class="cline-any cline-neutral"> </span>
|
|
543
|
-
<span class="cline-any cline-neutral"> </span>
|
|
544
|
-
<span class="cline-any cline-neutral"> </span>
|
|
545
|
-
<span class="cline-any cline-yes">571×</span>
|
|
546
|
-
<span class="cline-any cline-yes">24×</span>
|
|
547
|
-
<span class="cline-any cline-yes">547×</span>
|
|
548
|
-
<span class="cline-any cline-yes">7×</span>
|
|
549
|
-
<span class="cline-any cline-neutral"> </span>
|
|
550
|
-
<span class="cline-any cline-yes">540×</span>
|
|
551
|
-
<span class="cline-any cline-neutral"> </span>
|
|
552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
553
|
-
<span class="cline-any cline-neutral"> </span>
|
|
554
|
-
<span class="cline-any cline-yes">621×</span>
|
|
555
|
-
<span class="cline-any cline-yes">2×</span>
|
|
556
|
-
<span class="cline-any cline-yes">619×</span>
|
|
557
|
-
<span class="cline-any cline-yes">34×</span>
|
|
558
|
-
<span class="cline-any cline-neutral"> </span>
|
|
559
|
-
<span class="cline-any cline-neutral"> </span>
|
|
560
|
-
<span class="cline-any cline-yes">621×</span>
|
|
561
|
-
<span class="cline-any cline-yes">21×</span>
|
|
562
|
-
<span class="cline-any cline-yes">21×</span>
|
|
563
|
-
<span class="cline-any cline-neutral"> </span>
|
|
564
|
-
<span class="cline-any cline-yes">600×</span>
|
|
565
|
-
<span class="cline-any cline-neutral"> </span>
|
|
566
|
-
<span class="cline-any cline-neutral"> </span>
|
|
567
|
-
<span class="cline-any cline-neutral"> </span>
|
|
568
|
-
<span class="cline-any cline-neutral"> </span>
|
|
569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
570
|
-
<span class="cline-any cline-yes">445×</span>
|
|
571
|
-
<span class="cline-any cline-yes">2357×</span>
|
|
572
|
-
<span class="cline-any cline-yes">8×</span>
|
|
573
|
-
<span class="cline-any cline-neutral"> </span>
|
|
574
|
-
<span class="cline-any cline-neutral"> </span>
|
|
575
|
-
<span class="cline-any cline-neutral"> </span>
|
|
576
|
-
<span class="cline-any cline-neutral"> </span>
|
|
577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
578
|
-
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-neutral"> </span>
|
|
580
|
-
<span class="cline-any cline-neutral"> </span>
|
|
581
|
-
<span class="cline-any cline-yes">445×</span>
|
|
582
|
-
<span class="cline-any cline-yes">613×</span>
|
|
583
|
-
<span class="cline-any cline-yes">613×</span>
|
|
584
|
-
<span class="cline-any cline-neutral"> </span>
|
|
585
|
-
<span class="cline-any cline-yes">613×</span>
|
|
586
|
-
<span class="cline-any cline-no"> </span>
|
|
587
|
-
<span class="cline-any cline-no"> </span>
|
|
588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
589
|
-
<span class="cline-any cline-neutral"> </span>
|
|
590
|
-
<span class="cline-any cline-yes">613×</span>
|
|
591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
593
|
-
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-neutral"> </span>
|
|
595
|
-
<span class="cline-any cline-yes">445×</span>
|
|
596
|
-
<span class="cline-any cline-yes">92×</span>
|
|
597
|
-
<span class="cline-any cline-yes">92×</span>
|
|
598
|
-
<span class="cline-any cline-neutral"> </span>
|
|
599
|
-
<span class="cline-any cline-yes">92×</span>
|
|
600
|
-
<span class="cline-any cline-neutral"> </span>
|
|
601
|
-
<span class="cline-any cline-neutral"> </span>
|
|
602
|
-
<span class="cline-any cline-yes">445×</span>
|
|
603
|
-
<span class="cline-any cline-neutral"> </span>
|
|
604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
605
|
-
<span class="cline-any cline-yes">1×</span>
|
|
606
|
-
<span class="cline-any cline-yes">24×</span>
|
|
607
|
-
<span class="cline-any cline-neutral"> </span>
|
|
608
|
-
<span class="cline-any cline-yes">24×</span>
|
|
609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
613
|
-
<span class="cline-any cline-yes">24×</span>
|
|
614
|
-
<span class="cline-any cline-neutral"> </span>
|
|
615
|
-
<span class="cline-any cline-neutral"> </span>
|
|
616
|
-
<span class="cline-any cline-yes">1×</span>
|
|
617
|
-
<span class="cline-any cline-yes">4×</span>
|
|
618
|
-
<span class="cline-any cline-yes">4×</span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
|
-
<span class="cline-any cline-neutral"> </span>
|
|
621
|
-
<span class="cline-any cline-neutral"> </span>
|
|
622
|
-
<span class="cline-any cline-yes">4×</span>
|
|
623
|
-
<span class="cline-any cline-neutral"> </span>
|
|
624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-neutral"> </span>
|
|
626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
627
|
-
<span class="cline-any cline-yes">449×</span>
|
|
628
|
-
<span class="cline-any cline-yes">449×</span>
|
|
629
|
-
<span class="cline-any cline-yes">449×</span>
|
|
630
|
-
<span class="cline-any cline-yes">449×</span>
|
|
631
|
-
<span class="cline-any cline-neutral"> </span>
|
|
632
|
-
<span class="cline-any cline-neutral"> </span>
|
|
633
|
-
<span class="cline-any cline-neutral"> </span>
|
|
634
|
-
<span class="cline-any cline-yes">1×</span>
|
|
635
|
-
<span class="cline-any cline-yes">1×</span>
|
|
636
|
-
<span class="cline-any cline-neutral"> </span>
|
|
637
|
-
<span class="cline-any cline-neutral"> </span>
|
|
638
|
-
<span class="cline-any cline-neutral"> </span>
|
|
639
|
-
<span class="cline-any cline-yes">447×</span>
|
|
640
|
-
<span class="cline-any cline-no"> </span>
|
|
641
|
-
<span class="cline-any cline-neutral"> </span>
|
|
642
|
-
<span class="cline-any cline-yes">447×</span>
|
|
643
|
-
<span class="cline-any cline-yes">447×</span>
|
|
644
|
-
<span class="cline-any cline-neutral"> </span>
|
|
645
|
-
<span class="cline-any cline-yes">447×</span>
|
|
646
|
-
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-yes">447×</span>
|
|
648
|
-
<span class="cline-any cline-yes">447×</span>
|
|
649
|
-
<span class="cline-any cline-yes">447×</span>
|
|
650
|
-
<span class="cline-any cline-yes">447×</span>
|
|
651
|
-
<span class="cline-any cline-yes">447×</span>
|
|
652
|
-
<span class="cline-any cline-neutral"> </span>
|
|
653
|
-
<span class="cline-any cline-yes">447×</span>
|
|
654
|
-
<span class="cline-any cline-neutral"> </span>
|
|
655
|
-
<span class="cline-any cline-yes">447×</span>
|
|
656
|
-
<span class="cline-any cline-yes">54×</span>
|
|
657
|
-
<span class="cline-any cline-yes">54×</span>
|
|
658
|
-
<span class="cline-any cline-yes">54×</span>
|
|
659
|
-
<span class="cline-any cline-neutral"> </span>
|
|
660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
661
|
-
<span class="cline-any cline-yes">447×</span>
|
|
662
|
-
<span class="cline-any cline-neutral"> </span>
|
|
663
|
-
<span class="cline-any cline-yes">447×</span>
|
|
664
|
-
<span class="cline-any cline-yes">24×</span>
|
|
665
|
-
<span class="cline-any cline-neutral"> </span>
|
|
666
|
-
<span class="cline-any cline-neutral"> </span>
|
|
667
|
-
<span class="cline-any cline-yes">447×</span>
|
|
668
|
-
<span class="cline-any cline-neutral"> </span>
|
|
669
|
-
<span class="cline-any cline-yes">447×</span>
|
|
670
|
-
<span class="cline-any cline-yes">54×</span>
|
|
671
|
-
<span class="cline-any cline-yes">54×</span>
|
|
672
|
-
<span class="cline-any cline-yes">2×</span>
|
|
673
|
-
<span class="cline-any cline-yes">2×</span>
|
|
674
|
-
<span class="cline-any cline-neutral"> </span>
|
|
675
|
-
<span class="cline-any cline-yes">52×</span>
|
|
676
|
-
<span class="cline-any cline-neutral"> </span>
|
|
677
|
-
<span class="cline-any cline-neutral"> </span>
|
|
678
|
-
<span class="cline-any cline-yes">445×</span>
|
|
679
|
-
<span class="cline-any cline-neutral"> </span>
|
|
680
|
-
<span class="cline-any cline-yes">445×</span>
|
|
681
|
-
<span class="cline-any cline-yes">445×</span>
|
|
682
|
-
<span class="cline-any cline-yes">445×</span>
|
|
683
|
-
<span class="cline-any cline-neutral"> </span>
|
|
684
|
-
<span class="cline-any cline-yes">445×</span>
|
|
685
|
-
<span class="cline-any cline-yes">291×</span>
|
|
686
|
-
<span class="cline-any cline-yes">25×</span>
|
|
687
|
-
<span class="cline-any cline-yes">25×</span>
|
|
688
|
-
<span class="cline-any cline-yes">25×</span>
|
|
689
|
-
<span class="cline-any cline-yes">26×</span>
|
|
690
|
-
<span class="cline-any cline-neutral"> </span>
|
|
691
|
-
<span class="cline-any cline-neutral"> </span>
|
|
692
|
-
<span class="cline-any cline-yes">25×</span>
|
|
693
|
-
<span class="cline-any cline-neutral"> </span>
|
|
694
|
-
<span class="cline-any cline-yes">266×</span>
|
|
695
|
-
<span class="cline-any cline-yes">266×</span>
|
|
696
|
-
<span class="cline-any cline-yes">24×</span>
|
|
697
|
-
<span class="cline-any cline-neutral"> </span>
|
|
698
|
-
<span class="cline-any cline-yes">242×</span>
|
|
699
|
-
<span class="cline-any cline-yes">119×</span>
|
|
700
|
-
<span class="cline-any cline-neutral"> </span>
|
|
701
|
-
<span class="cline-any cline-neutral"> </span>
|
|
702
|
-
<span class="cline-any cline-neutral"> </span>
|
|
703
|
-
<span class="cline-any cline-neutral"> </span>
|
|
704
|
-
<span class="cline-any cline-neutral"> </span>
|
|
705
|
-
<span class="cline-any cline-yes">445×</span>
|
|
706
|
-
<span class="cline-any cline-yes">445×</span>
|
|
707
|
-
<span class="cline-any cline-neutral"> </span>
|
|
708
|
-
<span class="cline-any cline-neutral"> </span>
|
|
709
|
-
<span class="cline-any cline-yes">445×</span>
|
|
710
|
-
<span class="cline-any cline-yes">242×</span>
|
|
711
|
-
<span class="cline-any cline-neutral"> </span>
|
|
712
|
-
<span class="cline-any cline-yes">4×</span>
|
|
713
|
-
<span class="cline-any cline-yes">4×</span>
|
|
714
|
-
<span class="cline-any cline-yes">4×</span>
|
|
715
|
-
<span class="cline-any cline-neutral"> </span>
|
|
716
|
-
<span class="cline-any cline-yes">238×</span>
|
|
717
|
-
<span class="cline-any cline-neutral"> </span>
|
|
718
|
-
<span class="cline-any cline-neutral"> </span>
|
|
719
|
-
<span class="cline-any cline-yes">203×</span>
|
|
720
|
-
<span class="cline-any cline-neutral"> </span>
|
|
721
|
-
<span class="cline-any cline-neutral"> </span>
|
|
722
|
-
<span class="cline-any cline-yes">445×</span>
|
|
723
|
-
<span class="cline-any cline-neutral"> </span>
|
|
724
|
-
<span class="cline-any cline-yes">445×</span>
|
|
725
|
-
<span class="cline-any cline-neutral"> </span>
|
|
726
|
-
<span class="cline-any cline-yes">445×</span>
|
|
727
|
-
<span class="cline-any cline-yes">10×</span>
|
|
728
|
-
<span class="cline-any cline-neutral"> </span>
|
|
729
|
-
<span class="cline-any cline-yes">10×</span>
|
|
730
|
-
<span class="cline-any cline-yes">7×</span>
|
|
731
|
-
<span class="cline-any cline-neutral"> </span>
|
|
732
|
-
<span class="cline-any cline-yes">3×</span>
|
|
733
|
-
<span class="cline-any cline-yes">3×</span>
|
|
734
|
-
<span class="cline-any cline-neutral"> </span>
|
|
735
|
-
<span class="cline-any cline-neutral"> </span>
|
|
736
|
-
<span class="cline-any cline-neutral"> </span>
|
|
737
|
-
<span class="cline-any cline-neutral"> </span>
|
|
738
|
-
<span class="cline-any cline-neutral"> </span>
|
|
739
|
-
<span class="cline-any cline-neutral"> </span>
|
|
740
|
-
<span class="cline-any cline-yes">445×</span>
|
|
741
|
-
<span class="cline-any cline-yes">445×</span>
|
|
742
|
-
<span class="cline-any cline-yes">445×</span>
|
|
743
|
-
<span class="cline-any cline-neutral"> </span>
|
|
744
|
-
<span class="cline-any cline-neutral"> </span>
|
|
745
|
-
<span class="cline-any cline-neutral"> </span>
|
|
746
|
-
<span class="cline-any cline-yes">445×</span>
|
|
747
|
-
<span class="cline-any cline-yes">360×</span>
|
|
748
|
-
<span class="cline-any cline-yes">360×</span>
|
|
749
|
-
<span class="cline-any cline-neutral"> </span>
|
|
750
|
-
<span class="cline-any cline-yes">85×</span>
|
|
751
|
-
<span class="cline-any cline-neutral"> </span>
|
|
752
|
-
<span class="cline-any cline-neutral"> </span>
|
|
753
|
-
<span class="cline-any cline-yes">445×</span>
|
|
754
|
-
<span class="cline-any cline-yes">445×</span>
|
|
755
|
-
<span class="cline-any cline-neutral"> </span>
|
|
756
|
-
<span class="cline-any cline-neutral"> </span>
|
|
757
|
-
<span class="cline-any cline-neutral"> </span>
|
|
758
|
-
<span class="cline-any cline-neutral"> </span>
|
|
759
|
-
<span class="cline-any cline-yes">445×</span>
|
|
760
|
-
<span class="cline-any cline-yes">33×</span>
|
|
761
|
-
<span class="cline-any cline-yes">33×</span>
|
|
762
|
-
<span class="cline-any cline-yes">33×</span>
|
|
763
|
-
<span class="cline-any cline-yes">33×</span>
|
|
764
|
-
<span class="cline-any cline-yes">33×</span>
|
|
765
|
-
<span class="cline-any cline-yes">33×</span>
|
|
766
|
-
<span class="cline-any cline-neutral"> </span>
|
|
767
|
-
<span class="cline-any cline-yes">412×</span>
|
|
768
|
-
<span class="cline-any cline-neutral"> </span>
|
|
769
|
-
<span class="cline-any cline-neutral"> </span>
|
|
770
|
-
<span class="cline-any cline-neutral"> </span>
|
|
771
|
-
<span class="cline-any cline-yes">412×</span>
|
|
772
|
-
<span class="cline-any cline-yes">360×</span>
|
|
773
|
-
<span class="cline-any cline-neutral"> </span>
|
|
774
|
-
<span class="cline-any cline-neutral"> </span>
|
|
775
|
-
<span class="cline-any cline-neutral"> </span>
|
|
776
|
-
<span class="cline-any cline-neutral"> </span>
|
|
777
|
-
<span class="cline-any cline-yes">360×</span>
|
|
778
|
-
<span class="cline-any cline-neutral"> </span>
|
|
779
|
-
<span class="cline-any cline-neutral"> </span>
|
|
780
|
-
<span class="cline-any cline-yes">412×</span>
|
|
781
|
-
<span class="cline-any cline-yes">72×</span>
|
|
782
|
-
<span class="cline-any cline-yes">52×</span>
|
|
783
|
-
<span class="cline-any cline-yes">52×</span>
|
|
784
|
-
<span class="cline-any cline-neutral"> </span>
|
|
785
|
-
<span class="cline-any cline-yes">20×</span>
|
|
786
|
-
<span class="cline-any cline-yes">20×</span>
|
|
787
|
-
<span class="cline-any cline-neutral"> </span>
|
|
788
|
-
<span class="cline-any cline-neutral"> </span>
|
|
789
|
-
<span class="cline-any cline-yes">72×</span>
|
|
790
|
-
<span class="cline-any cline-yes">24×</span>
|
|
791
|
-
<span class="cline-any cline-neutral"> </span>
|
|
792
|
-
<span class="cline-any cline-neutral"> </span>
|
|
793
|
-
<span class="cline-any cline-neutral"> </span>
|
|
794
|
-
<span class="cline-any cline-yes">412×</span>
|
|
795
|
-
<span class="cline-any cline-neutral"> </span>
|
|
796
|
-
<span class="cline-any cline-yes">412×</span>
|
|
797
|
-
<span class="cline-any cline-yes">412×</span>
|
|
798
|
-
<span class="cline-any cline-yes">116×</span>
|
|
799
|
-
<span class="cline-any cline-neutral"> </span>
|
|
800
|
-
<span class="cline-any cline-neutral"> </span>
|
|
801
|
-
<span class="cline-any cline-yes">412×</span>
|
|
802
|
-
<span class="cline-any cline-yes">412×</span>
|
|
803
|
-
<span class="cline-any cline-neutral"> </span>
|
|
804
|
-
<span class="cline-any cline-yes">412×</span>
|
|
805
|
-
<span class="cline-any cline-yes">72×</span>
|
|
806
|
-
<span class="cline-any cline-neutral"> </span>
|
|
807
|
-
<span class="cline-any cline-yes">72×</span>
|
|
808
|
-
<span class="cline-any cline-yes">24×</span>
|
|
809
|
-
<span class="cline-any cline-neutral"> </span>
|
|
810
|
-
<span class="cline-any cline-neutral"> </span>
|
|
811
|
-
<span class="cline-any cline-yes">412×</span>
|
|
812
|
-
<span class="cline-any cline-yes">412×</span>
|
|
813
|
-
<span class="cline-any cline-neutral"> </span>
|
|
814
|
-
<span class="cline-any cline-neutral"> </span>
|
|
815
|
-
<span class="cline-any cline-yes">445×</span>
|
|
816
|
-
<span class="cline-any cline-yes">4×</span>
|
|
817
|
-
<span class="cline-any cline-neutral"> </span>
|
|
818
|
-
<span class="cline-any cline-neutral"> </span>
|
|
819
|
-
<span class="cline-any cline-neutral"> </span>
|
|
820
|
-
<span class="cline-any cline-neutral"> </span>
|
|
821
|
-
<span class="cline-any cline-neutral"> </span>
|
|
822
|
-
<span class="cline-any cline-neutral"> </span>
|
|
823
|
-
<span class="cline-any cline-neutral"> </span>
|
|
824
|
-
<span class="cline-any cline-neutral"> </span>
|
|
825
|
-
<span class="cline-any cline-neutral"> </span>
|
|
826
|
-
<span class="cline-any cline-yes">4×</span>
|
|
827
|
-
<span class="cline-any cline-neutral"> </span>
|
|
828
|
-
<span class="cline-any cline-neutral"> </span>
|
|
829
|
-
<span class="cline-any cline-neutral"> </span>
|
|
830
|
-
<span class="cline-any cline-neutral"> </span>
|
|
831
|
-
<span class="cline-any cline-yes">441×</span>
|
|
832
|
-
<span class="cline-any cline-neutral"> </span>
|
|
833
|
-
<span class="cline-any cline-neutral"> </span>
|
|
834
|
-
<span class="cline-any cline-neutral"> </span>
|
|
835
|
-
<span class="cline-any cline-neutral"> </span>
|
|
836
|
-
<span class="cline-any cline-yes">1×</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
|
|
837
|
-
|
|
838
|
-
var HtmlElement = require('./HtmlElement');
|
|
839
|
-
var removeDashes = require('../util/removeDashes');
|
|
840
|
-
var safeVarName = require('../util/safeVarName');
|
|
841
|
-
var ok = require('assert').ok;
|
|
842
|
-
|
|
843
|
-
function getNestedTagParentNode(nestedTagNode, parentTagName) {
|
|
844
|
-
var currentNode = nestedTagNode.parentNode;
|
|
845
|
-
while (currentNode) {
|
|
846
|
-
if (currentNode.type === 'CustomTag' && currentNode.tagDef.name === parentTagName) {
|
|
847
|
-
return currentNode;
|
|
848
|
-
}
|
|
849
|
-
|
|
850
|
-
currentNode = currentNode.parentNode;
|
|
851
|
-
}
|
|
852
|
-
}
|
|
853
|
-
|
|
854
|
-
function getNestedVariables(elNode, tagDef, codegen) {
|
|
855
|
-
var variableNames = [];
|
|
856
|
-
tagDef.forEachVariable((nestedVar) => {
|
|
857
|
-
var varName;
|
|
858
|
-
if (nestedVar.nameFromAttribute) {
|
|
859
|
-
var possibleNameAttributes = nestedVar.nameFromAttribute.split(/\s+or\s+|\s*,\s*/i);
|
|
860
|
-
for (var i = 0, len = possibleNameAttributes.length; i < len; i++) {
|
|
861
|
-
var attrName = possibleNameAttributes[i];
|
|
862
|
-
var keep = false;
|
|
863
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (attrName.endsWith('|keep')) {
|
|
864
|
-
<span class="cstat-no" title="statement not covered" > keep = true;</span>
|
|
865
|
-
<span class="cstat-no" title="statement not covered" > attrName = attrName.slice(0, 0 - '|keep'.length);</span>
|
|
866
|
-
<span class="cstat-no" title="statement not covered" > possibleNameAttributes[i] = attrName;</span>
|
|
867
|
-
}
|
|
868
|
-
varName = elNode.getAttributeValue(attrName);
|
|
869
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (varName) {
|
|
870
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (varName.type !== 'Literal' || typeof varName.value !== 'string') {
|
|
871
|
-
<span class="cstat-no" title="statement not covered" > codegen.addError('The value of the ' + attrName + ' is expected to be a string');</span>
|
|
872
|
-
<span class="cstat-no" title="statement not covered" > codegen.addError('Attribute ' + possibleNameAttributes.join(' or ') + ' is required');</span>
|
|
873
|
-
<span class="cstat-no" title="statement not covered" > varName = '_var'; </span> // Let it continue with errors
|
|
874
|
-
}
|
|
875
|
-
|
|
876
|
-
varName = varName.value;
|
|
877
|
-
|
|
878
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (!keep) {
|
|
879
|
-
elNode.removeAttribute(attrName);
|
|
880
|
-
}
|
|
881
|
-
break;
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!varName) {
|
|
885
|
-
<span class="cstat-no" title="statement not covered" > codegen.addError('Attribute ' + possibleNameAttributes.join(' or ') + ' is required');</span>
|
|
886
|
-
<span class="cstat-no" title="statement not covered" > varName = '_var'; </span> // Let it continue with errors
|
|
887
|
-
}
|
|
888
|
-
} else {
|
|
889
|
-
varName = nestedVar.name;
|
|
890
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!varName) {
|
|
891
|
-
<span class="cstat-no" title="statement not covered" > codegen.addError('Variable name is required');</span>
|
|
892
|
-
<span class="cstat-no" title="statement not covered" > varName = '_var'; </span> // Let it continue with errors
|
|
893
|
-
}
|
|
894
|
-
}
|
|
895
|
-
variableNames.push(codegen.builder.identifier(varName));
|
|
896
|
-
});
|
|
897
|
-
|
|
898
|
-
if (elNode.additionalNestedVars.length) {
|
|
899
|
-
elNode.additionalNestedVars.forEach((varName) => {
|
|
900
|
-
variableNames.push(codegen.builder.identifier(varName));
|
|
901
|
-
});
|
|
902
|
-
}
|
|
903
|
-
|
|
904
|
-
return variableNames;
|
|
905
|
-
}
|
|
906
|
-
|
|
907
|
-
function buildInputProps(el, context) {
|
|
908
|
-
var tagDef = el.tagDef;
|
|
909
|
-
var inputProps = {};
|
|
910
|
-
|
|
911
|
-
function handleAttr(attrName, attrValue, attrDef) {
|
|
912
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!attrDef) {
|
|
913
|
-
<span class="cstat-no" title="statement not covered" > return; </span>// Skip over attributes that are not supported
|
|
914
|
-
}
|
|
915
|
-
|
|
916
|
-
if (attrValue == null) {
|
|
917
|
-
attrValue = context.builder.literalTrue();
|
|
918
|
-
}
|
|
919
|
-
|
|
920
|
-
var propName;
|
|
921
|
-
var parentPropName;
|
|
922
|
-
|
|
923
|
-
if (attrDef.dynamicAttribute) {
|
|
924
|
-
// Dynamic attributes are allowed attributes
|
|
925
|
-
// that are not declared (i.e. "*" attributes)
|
|
926
|
-
//
|
|
927
|
-
if (attrDef.removeDashes === true || attrDef.preserveName === false) {
|
|
928
|
-
propName = removeDashes(attrName);
|
|
929
|
-
} else {
|
|
930
|
-
propName = attrName;
|
|
931
|
-
}
|
|
932
|
-
|
|
933
|
-
if (attrDef.targetProperty) {
|
|
934
|
-
parentPropName = attrDef.targetProperty;
|
|
935
|
-
}
|
|
936
|
-
} else {
|
|
937
|
-
// Attributes map to properties and we allow the taglib
|
|
938
|
-
// author to control how an attribute name resolves
|
|
939
|
-
// to a property name.
|
|
940
|
-
if (attrDef.targetProperty) {
|
|
941
|
-
propName = attrDef.targetProperty;
|
|
942
|
-
} else if (attrDef.preserveName === true) {
|
|
943
|
-
propName = attrName;
|
|
944
|
-
} else {
|
|
945
|
-
propName = removeDashes(attrName);
|
|
946
|
-
}
|
|
947
|
-
}
|
|
948
|
-
|
|
949
|
-
if (attrDef.type === 'path') {
|
|
950
|
-
attrValue = context.resolvePath(attrValue);
|
|
951
|
-
} else if (attrDef.type === 'template') {
|
|
952
|
-
attrValue = context.resolveTemplate(attrValue);
|
|
953
|
-
}
|
|
954
|
-
|
|
955
|
-
if (parentPropName) {
|
|
956
|
-
let parent = inputProps[parentPropName] || (inputProps[parentPropName] = {});
|
|
957
|
-
parent[propName] = attrValue;
|
|
958
|
-
} else {
|
|
959
|
-
inputProps[propName] = attrValue;
|
|
960
|
-
}
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
// Add default values for any attributes from the tag definition. These added properties may get overridden
|
|
964
|
-
// by get overridden from the attributes found on the actual HTML element.
|
|
965
|
-
tagDef.forEachAttribute(function (attrDef) {
|
|
966
|
-
if (attrDef.hasOwnProperty('defaultValue')) {
|
|
967
|
-
handleAttr(
|
|
968
|
-
attrDef.name,
|
|
969
|
-
context.builder.literal(attrDef.defaultValue),
|
|
970
|
-
attrDef);
|
|
971
|
-
}
|
|
972
|
-
});
|
|
973
|
-
|
|
974
|
-
// Loop over the attributes found on the HTML element and add the corresponding properties
|
|
975
|
-
// to the input object for the custom tag
|
|
976
|
-
el.forEachAttribute((attr) => {
|
|
977
|
-
var attrName = attr.name;
|
|
978
|
-
var attrDef = attr.def || context.taglibLookup.getAttribute(el.tagName, attr.name);
|
|
979
|
-
|
|
980
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!attrDef) {
|
|
981
|
-
<span class="cstat-no" title="statement not covered" > context.addError(el, 'Unsupported attribute of "' + attrName + '" found on the <' + el.tagName + '> custom tag.');</span>
|
|
982
|
-
<span class="cstat-no" title="statement not covered" > return; </span>// Skip over attributes that are not supported
|
|
983
|
-
}
|
|
984
|
-
|
|
985
|
-
handleAttr(attrName, attr.value, attrDef);
|
|
986
|
-
});
|
|
987
|
-
|
|
988
|
-
// Imported variables are used to add input properties to a custom tag based on data/variables
|
|
989
|
-
// found in the compiled template
|
|
990
|
-
tagDef.forEachImportedVariable(function(importedVariable) {
|
|
991
|
-
let propName = importedVariable.targetProperty;
|
|
992
|
-
let propExpression = importedVariable.expression;
|
|
993
|
-
|
|
994
|
-
inputProps[propName] = propExpression;
|
|
995
|
-
});
|
|
996
|
-
|
|
997
|
-
return inputProps;
|
|
998
|
-
}
|
|
999
|
-
|
|
1000
|
-
function getNextNestedTagVarName(tagDef, context) {
|
|
1001
|
-
var key = 'customTag' + tagDef.name;
|
|
1002
|
-
|
|
1003
|
-
var nestedTagVarInfo = context.data[key] || (context.data[key] = {
|
|
1004
|
-
next: 0
|
|
1005
|
-
});
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
return safeVarName(tagDef.name) + (nestedTagVarInfo.next++);
|
|
1009
|
-
}
|
|
1010
|
-
|
|
1011
|
-
function getNextRenderBodyVar(context) {
|
|
1012
|
-
var key = 'CustomTag_renderBodyVar';
|
|
1013
|
-
var nextVarInfo = context.data[key] || (context.data[key] = {
|
|
1014
|
-
next: 0
|
|
1015
|
-
});
|
|
1016
|
-
|
|
1017
|
-
return 'renderBodyConditional'+ (nextVarInfo.next++);
|
|
1018
|
-
}
|
|
1019
|
-
|
|
1020
|
-
class CustomTag extends HtmlElement {
|
|
1021
|
-
constructor(el, tagDef) {
|
|
1022
|
-
super(el);
|
|
1023
|
-
this.type = 'CustomTag';
|
|
1024
|
-
this.tagDef = tagDef;
|
|
1025
|
-
this.additionalNestedVars = [];
|
|
1026
|
-
}
|
|
1027
|
-
|
|
1028
|
-
addNestedVariable(name) {
|
|
1029
|
-
ok(name, '"name" is required');
|
|
1030
|
-
this.additionalNestedVars.push(name);
|
|
1031
|
-
}
|
|
1032
|
-
|
|
1033
|
-
generateCode(codegen) {
|
|
1034
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (this.type !== 'CustomTag') {
|
|
1035
|
-
<span class="cstat-no" title="statement not covered" > throw new Error(this.type);</span>
|
|
1036
|
-
}
|
|
1037
|
-
var builder = codegen.builder;
|
|
1038
|
-
var context = codegen.context;
|
|
1039
|
-
|
|
1040
|
-
var tagDef = this.tagDef;
|
|
1041
|
-
|
|
1042
|
-
var isNestedTag = tagDef.isNestedTag === true;
|
|
1043
|
-
var hasNestedTags = tagDef.hasNestedTags();
|
|
1044
|
-
var parentTagName;
|
|
1045
|
-
var isRepeated;
|
|
1046
|
-
var targetProperty;
|
|
1047
|
-
|
|
1048
|
-
var bodyOnlyIf = this.bodyOnlyIf;
|
|
1049
|
-
|
|
1050
|
-
if (isNestedTag) {
|
|
1051
|
-
parentTagName = tagDef.parentTagName;
|
|
1052
|
-
isRepeated = tagDef.isRepeated === true;
|
|
1053
|
-
targetProperty = builder.literal(tagDef.targetProperty);
|
|
1054
|
-
}
|
|
1055
|
-
|
|
1056
|
-
var nestedTagVar;
|
|
1057
|
-
|
|
1058
|
-
if (hasNestedTags) {
|
|
1059
|
-
nestedTagVar = this.data.nestedTagVar = builder.identifier(getNextNestedTagVarName(tagDef, context));
|
|
1060
|
-
}
|
|
1061
|
-
|
|
1062
|
-
let parentTagVar;
|
|
1063
|
-
|
|
1064
|
-
if (isNestedTag) {
|
|
1065
|
-
let parentTagNode = getNestedTagParentNode(this, parentTagName);
|
|
1066
|
-
if (!parentTagNode) {
|
|
1067
|
-
codegen.addError('Invalid usage of the <' + this.tagName + '> nested tag. Tag not nested within a <' + parentTagName + '> tag.');
|
|
1068
|
-
return null;
|
|
1069
|
-
}
|
|
1070
|
-
parentTagVar = parentTagNode.data.nestedTagVar;
|
|
1071
|
-
}
|
|
1072
|
-
|
|
1073
|
-
var nestedVariableNames = getNestedVariables(this, tagDef, codegen);
|
|
1074
|
-
|
|
1075
|
-
var inputProps = buildInputProps(this, context);
|
|
1076
|
-
var renderBodyFunction;
|
|
1077
|
-
var body = codegen.generateCode(this.body);
|
|
1078
|
-
|
|
1079
|
-
if (body && body.length) {
|
|
1080
|
-
if (tagDef.bodyFunction) {
|
|
1081
|
-
let bodyFunction = tagDef.bodyFunction;
|
|
1082
|
-
let bodyFunctionName = bodyFunction.name;
|
|
1083
|
-
let bodyFunctionParams = bodyFunction.params.map(function(param) {
|
|
1084
|
-
return builder.identifier(param);
|
|
1085
|
-
});
|
|
1086
|
-
|
|
1087
|
-
inputProps[bodyFunctionName] = builder.functionDeclaration(bodyFunctionName, bodyFunctionParams, body);
|
|
1088
|
-
} else {
|
|
1089
|
-
renderBodyFunction = context.builder.renderBodyFunction(body);
|
|
1090
|
-
if (nestedTagVar) {
|
|
1091
|
-
renderBodyFunction.params.push(nestedTagVar);
|
|
1092
|
-
} else {
|
|
1093
|
-
if (nestedVariableNames && nestedVariableNames.length) {
|
|
1094
|
-
renderBodyFunction.params = renderBodyFunction.params.concat(nestedVariableNames);
|
|
1095
|
-
}
|
|
1096
|
-
}
|
|
1097
|
-
}
|
|
1098
|
-
}
|
|
1099
|
-
|
|
1100
|
-
var renderBodyFunctionVarIdentifier;
|
|
1101
|
-
var renderBodyFunctionVar;
|
|
1102
|
-
// Store the renderBody function with the input, but only if the body does not have
|
|
1103
|
-
// nested tags
|
|
1104
|
-
if (renderBodyFunction && !hasNestedTags) {
|
|
1105
|
-
if (bodyOnlyIf) {
|
|
1106
|
-
// Move the renderBody function into a local variable
|
|
1107
|
-
renderBodyFunctionVarIdentifier = builder.identifier(getNextRenderBodyVar(context));
|
|
1108
|
-
renderBodyFunctionVar = builder.var(renderBodyFunctionVarIdentifier, renderBodyFunction);
|
|
1109
|
-
inputProps.renderBody = renderBodyFunctionVarIdentifier;
|
|
1110
|
-
} else {
|
|
1111
|
-
inputProps.renderBody = renderBodyFunction;
|
|
1112
|
-
}
|
|
1113
|
-
} else {
|
|
1114
|
-
bodyOnlyIf = null;
|
|
1115
|
-
}
|
|
1116
|
-
|
|
1117
|
-
inputProps = builder.literal(inputProps);
|
|
1118
|
-
|
|
1119
|
-
var argument = this.argument;
|
|
1120
|
-
|
|
1121
|
-
if (argument) {
|
|
1122
|
-
argument = builder.parseExpression(argument);
|
|
1123
|
-
|
|
1124
|
-
if (Object.keys(inputProps.value).length === 0) {
|
|
1125
|
-
inputProps = argument;
|
|
1126
|
-
} else {
|
|
1127
|
-
var mergeVar = context.helper('merge');
|
|
1128
|
-
inputProps = builder.functionCall(mergeVar, [
|
|
1129
|
-
inputProps, // Input props from the attributes take precedence
|
|
1130
|
-
argument
|
|
1131
|
-
]);
|
|
1132
|
-
}
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
|
-
var rendererPath = tagDef.renderer;
|
|
1136
|
-
var rendererRequirePath;
|
|
1137
|
-
var requireRendererFunctionCall;
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
if (rendererPath) {
|
|
1142
|
-
rendererRequirePath = context.getRequirePath(rendererPath);
|
|
1143
|
-
requireRendererFunctionCall = builder.require(JSON.stringify(rendererRequirePath));
|
|
1144
|
-
} else {
|
|
1145
|
-
requireRendererFunctionCall = builder.literal(null);
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1148
|
-
var finalNode;
|
|
1149
|
-
var meta = builder.objectExpression([
|
|
1150
|
-
builder.property('type', builder.literal('custom')),
|
|
1151
|
-
builder.property('name', builder.literal(tagDef.name))
|
|
1152
|
-
]);
|
|
1153
|
-
|
|
1154
|
-
if (tagDef.template) {
|
|
1155
|
-
let templateRequirePath = context.getRequirePath(tagDef.template);
|
|
1156
|
-
let templateVar = context.importTemplate(templateRequirePath, meta);
|
|
1157
|
-
let renderMethod = builder.memberExpression(templateVar, builder.identifier('render'));
|
|
1158
|
-
let renderArgs = [ inputProps, 'out' ];
|
|
1159
|
-
let renderFunctionCall = builder.functionCall(renderMethod, renderArgs);
|
|
1160
|
-
finalNode = renderFunctionCall;
|
|
1161
|
-
} else {
|
|
1162
|
-
var loadTagArgs = [
|
|
1163
|
-
requireRendererFunctionCall // The first param is the renderer
|
|
1164
|
-
];
|
|
1165
|
-
|
|
1166
|
-
if(rendererRequirePath) {
|
|
1167
|
-
meta.properties.push(
|
|
1168
|
-
builder.property('renderer',
|
|
1169
|
-
builder.requireResolve(builder.literal(rendererRequirePath))
|
|
1170
|
-
)
|
|
1171
|
-
);
|
|
1172
|
-
codegen.pushMeta('tags', meta, true);
|
|
1173
|
-
}
|
|
1174
|
-
|
|
1175
|
-
if (isNestedTag || hasNestedTags) {
|
|
1176
|
-
if (isNestedTag) {
|
|
1177
|
-
loadTagArgs.push(targetProperty); // targetProperty
|
|
1178
|
-
loadTagArgs.push(builder.literal(isRepeated ? 1 : 0)); // isRepeated
|
|
1179
|
-
} else {
|
|
1180
|
-
loadTagArgs.push(builder.literal(0)); // targetProperty
|
|
1181
|
-
loadTagArgs.push(builder.literal(0)); // isRepeated
|
|
1182
|
-
}
|
|
1183
|
-
|
|
1184
|
-
if (hasNestedTags) {
|
|
1185
|
-
loadTagArgs.push(builder.literal(1));
|
|
1186
|
-
}
|
|
1187
|
-
}
|
|
1188
|
-
|
|
1189
|
-
var loadTag = builder.functionCall(context.helper('loadTag'), loadTagArgs);
|
|
1190
|
-
|
|
1191
|
-
var tagVar = tagDef.name;
|
|
1192
|
-
if (context.util.isJavaScriptReservedWord(tagVar)) {
|
|
1193
|
-
tagVar = tagVar + 'Tag';
|
|
1194
|
-
}
|
|
1195
|
-
|
|
1196
|
-
tagVar = codegen.addStaticVar(tagVar, loadTag);
|
|
1197
|
-
let tagArgs = [inputProps, 'out' ];
|
|
1198
|
-
|
|
1199
|
-
if (isNestedTag || hasNestedTags) {
|
|
1200
|
-
tagArgs.push(isNestedTag ? parentTagVar : builder.literal(0));
|
|
1201
|
-
|
|
1202
|
-
if (renderBodyFunction && hasNestedTags) {
|
|
1203
|
-
tagArgs.push(renderBodyFunction);
|
|
1204
|
-
}
|
|
1205
|
-
}
|
|
1206
|
-
let tagFunctionCall = builder.functionCall(tagVar, tagArgs);
|
|
1207
|
-
finalNode = tagFunctionCall;
|
|
1208
|
-
}
|
|
1209
|
-
|
|
1210
|
-
if (bodyOnlyIf && renderBodyFunctionVar) {
|
|
1211
|
-
var ifStatement = builder.ifStatement(
|
|
1212
|
-
bodyOnlyIf,
|
|
1213
|
-
[
|
|
1214
|
-
|
|
1215
|
-
builder.functionCall(renderBodyFunctionVarIdentifier, [builder.identifierOut()])
|
|
1216
|
-
],
|
|
1217
|
-
builder.elseStatement([
|
|
1218
|
-
finalNode
|
|
1219
|
-
]));
|
|
1220
|
-
|
|
1221
|
-
return [
|
|
1222
|
-
renderBodyFunctionVar,
|
|
1223
|
-
ifStatement
|
|
1224
|
-
];
|
|
1225
|
-
} else {
|
|
1226
|
-
return finalNode;
|
|
1227
|
-
}
|
|
1228
|
-
}
|
|
1229
|
-
}
|
|
1230
|
-
|
|
1231
|
-
module.exports = CustomTag;</pre></td></tr>
|
|
1232
|
-
</table></pre>
|
|
1233
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
1234
|
-
</div><!-- /wrapper -->
|
|
1235
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
1236
|
-
Code coverage
|
|
1237
|
-
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Oct 18 2016 14:11:32 GMT-0700 (PDT)
|
|
1238
|
-
</div>
|
|
1239
|
-
</div>
|
|
1240
|
-
<script src="../../../prettify.js"></script>
|
|
1241
|
-
<script>
|
|
1242
|
-
window.onload = function () {
|
|
1243
|
-
if (typeof prettyPrint === 'function') {
|
|
1244
|
-
prettyPrint();
|
|
1245
|
-
}
|
|
1246
|
-
};
|
|
1247
|
-
</script>
|
|
1248
|
-
<script src="../../../sorter.js"></script>
|
|
1249
|
-
</body>
|
|
1250
|
-
</html>
|