marko 4.26.3 → 4.27.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (250) hide show
  1. package/README.md +1 -1
  2. package/bin/markoc.js +15 -15
  3. package/dist/compiler/ast/CustomTag.js +2 -2
  4. package/dist/core-tags/components/TransformHelper/handleLegacyBind.js +0 -4
  5. package/dist/core-tags/core/await/renderer.js +0 -4
  6. package/dist/core-tags/migrate/all-tags/body-only-if.js +0 -1
  7. package/dist/core-tags/migrate/all-tags/control-flow-directives.js +0 -1
  8. package/dist/core-tags/migrate/all-tags/dynamic-attributes.js +1 -2
  9. package/dist/core-tags/migrate/all-tags/include-directive.js +0 -2
  10. package/dist/core-tags/migrate/all-tags/legacy-nested-tag.js +0 -2
  11. package/dist/core-tags/migrate/all-tags/marko-init.js +0 -2
  12. package/dist/core-tags/migrate/all-tags/modifier-key.js +0 -2
  13. package/dist/core-tags/migrate/all-tags/ref.js +1 -3
  14. package/dist/core-tags/migrate/all-tags/w-bind.js +0 -2
  15. package/dist/core-tags/migrate/all-tags/w-body.js +0 -2
  16. package/dist/core-tags/migrate/all-tags/w-config.js +0 -2
  17. package/dist/core-tags/migrate/all-tags/w-for.js +0 -3
  18. package/dist/core-tags/migrate/all-tags/w-id.js +1 -4
  19. package/dist/core-tags/migrate/all-tags/w-on.js +1 -4
  20. package/dist/core-tags/migrate/all-tags/w-preserve-attrs.js +0 -2
  21. package/dist/core-tags/migrate/all-tags/w-preserve.js +1 -3
  22. package/dist/core-tags/migrate/all-tags/widget-in-attrs.js +2 -11
  23. package/dist/core-tags/migrate/all-templates/non-standard-template-literals.js +0 -4
  24. package/dist/core-tags/migrate/all-templates/render-calls.js +0 -2
  25. package/dist/core-tags/migrate/assign-tag.js +0 -2
  26. package/dist/core-tags/migrate/async-fragment-tag.js +0 -2
  27. package/dist/core-tags/migrate/async-fragments-tag.js +0 -2
  28. package/dist/core-tags/migrate/await-tag.js +0 -7
  29. package/dist/core-tags/migrate/class-tag.js +0 -2
  30. package/dist/core-tags/migrate/component-globals-tag.js +0 -2
  31. package/dist/core-tags/migrate/for-tag.js +0 -2
  32. package/dist/core-tags/migrate/include-tag.js +0 -1
  33. package/dist/core-tags/migrate/invoke-tag.js +0 -2
  34. package/dist/core-tags/migrate/layout-placeholder-tag.js +0 -1
  35. package/dist/core-tags/migrate/layout-put-tag.js +0 -1
  36. package/dist/core-tags/migrate/layout-use-tag.js +0 -1
  37. package/dist/core-tags/migrate/macro-body-tag.js +0 -2
  38. package/dist/core-tags/migrate/macro-tag.js +0 -2
  39. package/dist/core-tags/migrate/unless-tag.js +0 -1
  40. package/dist/core-tags/migrate/var-tag.js +0 -2
  41. package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +0 -10
  42. package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +0 -4
  43. package/dist/runtime/RenderResult.js +0 -3
  44. package/dist/runtime/components/Component.js +0 -6
  45. package/dist/runtime/components/ComponentDef.js +0 -3
  46. package/dist/runtime/components/ServerComponent.js +0 -4
  47. package/dist/runtime/components/legacy/defineComponent-legacy.js +0 -3
  48. package/dist/runtime/components/legacy/defineRenderer-legacy.js +1 -6
  49. package/dist/runtime/components/legacy/index.js +3 -1
  50. package/dist/runtime/helpers/for-of.js +3 -1
  51. package/dist/runtime/html/helpers/attr.js +0 -4
  52. package/dist/runtime/html/helpers/attrs.js +0 -2
  53. package/dist/runtime/html/helpers/merge-attrs.js +0 -3
  54. package/dist/runtime/vdom/VElement.js +0 -3
  55. package/dist/runtime/vdom/helpers/attrs.js +0 -2
  56. package/dist/taglib/taglib-loader/loadTagFromProps.js +15 -0
  57. package/docs/10-awesome-marko-features.md +1 -1
  58. package/docs/body-content.md +3 -3
  59. package/docs/class-components.md +6 -6
  60. package/docs/express.md +1 -1
  61. package/docs/fastify.md +4 -4
  62. package/docs/hapi.md +3 -3
  63. package/docs/http.md +1 -1
  64. package/docs/huncwot.md +1 -1
  65. package/docs/installing.md +2 -2
  66. package/docs/koa.md +2 -2
  67. package/docs/lasso.md +1 -1
  68. package/docs/marko-4-upgrade.md +1 -1
  69. package/docs/marko-v4.md +4 -4
  70. package/docs/marko-vs-react.md +2 -2
  71. package/docs/rendering.md +6 -6
  72. package/docs/server-side-rendering.md +3 -3
  73. package/docs/webpack.md +16 -16
  74. package/docs/why-is-marko-fast.md +3 -3
  75. package/package.json +1 -1
  76. package/src/compiler/Builder.js +13 -13
  77. package/src/compiler/CodeGenerator.js +2 -2
  78. package/src/compiler/CodeWriter.js +1 -1
  79. package/src/compiler/CompileContext.js +30 -30
  80. package/src/compiler/Compiler.js +3 -3
  81. package/src/compiler/HtmlJsParser.js +4 -4
  82. package/src/compiler/Migrator.js +2 -2
  83. package/src/compiler/Normalizer.js +5 -5
  84. package/src/compiler/Parser.js +11 -11
  85. package/src/compiler/Walker.js +1 -1
  86. package/src/compiler/ast/ArrayExpression.js +1 -1
  87. package/src/compiler/ast/BinaryExpression.js +1 -1
  88. package/src/compiler/ast/ConditionalExpression.js +1 -1
  89. package/src/compiler/ast/CustomTag.js +14 -14
  90. package/src/compiler/ast/Declaration.js +2 -2
  91. package/src/compiler/ast/DocumentType.js +2 -2
  92. package/src/compiler/ast/ForEach.js +1 -1
  93. package/src/compiler/ast/ForEachProp.js +1 -1
  94. package/src/compiler/ast/ForRange.js +1 -1
  95. package/src/compiler/ast/HtmlAttribute/html/generateCode.js +4 -4
  96. package/src/compiler/ast/HtmlAttribute/vdom/generateCode.js +2 -2
  97. package/src/compiler/ast/HtmlAttributeCollection.js +3 -3
  98. package/src/compiler/ast/HtmlComment.js +1 -1
  99. package/src/compiler/ast/HtmlElement/html/EndTag.js +1 -1
  100. package/src/compiler/ast/HtmlElement/html/StartTag.js +3 -3
  101. package/src/compiler/ast/HtmlElement/html/generateCode.js +5 -5
  102. package/src/compiler/ast/HtmlElement/index.js +1 -1
  103. package/src/compiler/ast/HtmlElement/vdom/HtmlElementVDOM.js +1 -1
  104. package/src/compiler/ast/HtmlElement/vdom/generateCode.js +3 -3
  105. package/src/compiler/ast/If.js +1 -1
  106. package/src/compiler/ast/LogicalExpression.js +1 -1
  107. package/src/compiler/ast/MemberExpression.js +1 -1
  108. package/src/compiler/ast/NewExpression.js +1 -1
  109. package/src/compiler/ast/Node.js +4 -4
  110. package/src/compiler/ast/ObjectExpression.js +2 -2
  111. package/src/compiler/ast/Property.js +1 -1
  112. package/src/compiler/ast/SequenceExpression.js +1 -1
  113. package/src/compiler/ast/TemplateLiteral.js +1 -1
  114. package/src/compiler/ast/TemplateRoot.js +3 -3
  115. package/src/compiler/ast/Text/index.js +1 -1
  116. package/src/compiler/ast/UnaryExpression.js +1 -1
  117. package/src/compiler/ast/UpdateExpression.js +1 -1
  118. package/src/compiler/config.js +1 -1
  119. package/src/compiler/index.js +5 -5
  120. package/src/compiler/modules.js +2 -2
  121. package/src/compiler/util/UniqueVars.js +4 -4
  122. package/src/compiler/util/convertRawJavaScriptAst.js +1 -1
  123. package/src/compiler/util/javaScriptReservedWords.js +1 -1
  124. package/src/compiler/util/macros.js +1 -1
  125. package/src/compiler/util/mergeProps.js +3 -3
  126. package/src/compiler/util/parseJavaScriptArgs.js +1 -1
  127. package/src/compiler/util/parseJavaScriptParams.js +1 -1
  128. package/src/compiler/util/parseRawJavaScriptAst.js +1 -1
  129. package/src/compiler/util/removeComments.js +6 -6
  130. package/src/compiler/util/tokenizer.js +3 -3
  131. package/src/compiler/util/vdom/VDOMOptimizer.js +2 -2
  132. package/src/core-tags/cache/cached-fragment-tag.js +2 -2
  133. package/src/core-tags/cache/default-cache-manager.js +2 -2
  134. package/src/core-tags/components/TransformHelper/ComponentArgsCompiler.js +3 -3
  135. package/src/core-tags/components/TransformHelper/assignComponentId.js +3 -3
  136. package/src/core-tags/components/TransformHelper/convertToComponent.js +4 -4
  137. package/src/core-tags/components/TransformHelper/getComponentFiles.js +1 -1
  138. package/src/core-tags/components/TransformHelper/handleComponentEvents.js +3 -3
  139. package/src/core-tags/components/TransformHelper/handleComponentPreserve.js +7 -7
  140. package/src/core-tags/components/TransformHelper/handleLegacyBind.js +2 -8
  141. package/src/core-tags/components/TransformHelper/handleRootNodes.js +14 -14
  142. package/src/core-tags/components/TransformHelper/handleScopedAttrs.js +1 -1
  143. package/src/core-tags/components/TransformHelper/index.js +1 -1
  144. package/src/core-tags/components/component-tag.js +1 -1
  145. package/src/core-tags/components/components-transformer.js +2 -2
  146. package/src/core-tags/components/util/generateRegisterComponentCode.js +2 -2
  147. package/src/core-tags/components/widget-types-tag.js +2 -2
  148. package/src/core-tags/core/await/AsyncValue.js +1 -1
  149. package/src/core-tags/core/await/renderer.js +3 -12
  150. package/src/core-tags/core/await/reorderer-renderer.js +1 -1
  151. package/src/core-tags/core/core-transformer.js +5 -5
  152. package/src/core-tags/core/html-comment-tag.js +1 -1
  153. package/src/core-tags/core/import-tag.js +1 -1
  154. package/src/core-tags/core/util/parseImport.js +8 -8
  155. package/src/core-tags/html/normalize-script-text.js +1 -1
  156. package/src/core-tags/migrate/all-tags/body-only-if.js +4 -5
  157. package/src/core-tags/migrate/all-tags/control-flow-directives.js +2 -5
  158. package/src/core-tags/migrate/all-tags/dynamic-attributes.js +1 -4
  159. package/src/core-tags/migrate/all-tags/include-directive.js +0 -4
  160. package/src/core-tags/migrate/all-tags/index.js +2 -2
  161. package/src/core-tags/migrate/all-tags/legacy-nested-tag.js +0 -5
  162. package/src/core-tags/migrate/all-tags/marko-init.js +2 -8
  163. package/src/core-tags/migrate/all-tags/modifier-key.js +1 -7
  164. package/src/core-tags/migrate/all-tags/params.js +1 -1
  165. package/src/core-tags/migrate/all-tags/ref.js +1 -5
  166. package/src/core-tags/migrate/all-tags/w-bind.js +8 -12
  167. package/src/core-tags/migrate/all-tags/w-body.js +3 -7
  168. package/src/core-tags/migrate/all-tags/w-config.js +1 -5
  169. package/src/core-tags/migrate/all-tags/w-for.js +1 -8
  170. package/src/core-tags/migrate/all-tags/w-id.js +1 -8
  171. package/src/core-tags/migrate/all-tags/w-on.js +2 -9
  172. package/src/core-tags/migrate/all-tags/w-preserve-attrs.js +1 -5
  173. package/src/core-tags/migrate/all-tags/w-preserve.js +3 -7
  174. package/src/core-tags/migrate/all-tags/widget-in-attrs.js +4 -17
  175. package/src/core-tags/migrate/all-templates/index.js +2 -2
  176. package/src/core-tags/migrate/all-templates/non-standard-template-literals.js +6 -12
  177. package/src/core-tags/migrate/all-templates/render-calls.js +4 -8
  178. package/src/core-tags/migrate/all-templates/widget-data-is-state.js +2 -2
  179. package/src/core-tags/migrate/all-templates/widget-get-template-data.js +2 -2
  180. package/src/core-tags/migrate/assign-tag.js +2 -6
  181. package/src/core-tags/migrate/async-fragment-tag.js +2 -6
  182. package/src/core-tags/migrate/async-fragments-tag.js +0 -4
  183. package/src/core-tags/migrate/await-tag.js +8 -23
  184. package/src/core-tags/migrate/class-tag.js +0 -4
  185. package/src/core-tags/migrate/component-globals-tag.js +0 -4
  186. package/src/core-tags/migrate/for-tag.js +12 -16
  187. package/src/core-tags/migrate/include-tag.js +2 -5
  188. package/src/core-tags/migrate/invoke-tag.js +2 -6
  189. package/src/core-tags/migrate/layout-placeholder-tag.js +0 -3
  190. package/src/core-tags/migrate/layout-put-tag.js +0 -3
  191. package/src/core-tags/migrate/layout-use-tag.js +0 -3
  192. package/src/core-tags/migrate/macro-body-tag.js +0 -5
  193. package/src/core-tags/migrate/macro-tag.js +5 -10
  194. package/src/core-tags/migrate/unless-tag.js +0 -3
  195. package/src/core-tags/migrate/util/addIdScopedAttr.js +1 -1
  196. package/src/core-tags/migrate/util/import-tag.js +6 -6
  197. package/src/core-tags/migrate/util/parseFor.js +20 -20
  198. package/src/core-tags/migrate/util/renderCallToDynamicTag.js +7 -7
  199. package/src/core-tags/migrate/var-tag.js +4 -8
  200. package/src/express.js +1 -1
  201. package/src/hot-reload.js +3 -3
  202. package/src/node-require/index.js +1 -1
  203. package/src/node_modules/@internal/components-define-widget-legacy/index-browser.js +4 -55
  204. package/src/node_modules/@internal/components-entry-legacy/index-browser.js +0 -10
  205. package/src/runtime/RenderResult.js +3 -16
  206. package/src/runtime/components/Component.js +2 -23
  207. package/src/runtime/components/ComponentDef.js +2 -8
  208. package/src/runtime/components/ComponentsContext.js +1 -1
  209. package/src/runtime/components/ServerComponent.js +0 -6
  210. package/src/runtime/components/State.js +2 -2
  211. package/src/runtime/components/attach-detach.js +1 -1
  212. package/src/runtime/components/dom-data.js +1 -1
  213. package/src/runtime/components/legacy/defineComponent-legacy.js +0 -5
  214. package/src/runtime/components/legacy/defineRenderer-legacy.js +1 -16
  215. package/src/runtime/components/legacy/dependencies/index.js +10 -10
  216. package/src/runtime/components/legacy/index.js +5 -0
  217. package/src/runtime/components/legacy/renderer-legacy.js +1 -1
  218. package/src/runtime/components/update-manager.js +1 -1
  219. package/src/runtime/dom-insert.js +1 -1
  220. package/src/runtime/helpers/_weak-map.js +1 -1
  221. package/src/runtime/helpers/bind-component.js +1 -1
  222. package/src/runtime/helpers/for-of.js +1 -6
  223. package/src/runtime/html/AsyncStream.js +5 -5
  224. package/src/runtime/html/BufferedWriter.js +1 -1
  225. package/src/runtime/html/StringWriter.js +1 -1
  226. package/src/runtime/html/helpers/attr.js +0 -9
  227. package/src/runtime/html/helpers/attrs.js +0 -6
  228. package/src/runtime/html/helpers/merge-attrs.js +0 -8
  229. package/src/runtime/html/index.js +1 -1
  230. package/src/runtime/renderable.js +1 -1
  231. package/src/runtime/vdom/AsyncVDOMBuilder.js +2 -2
  232. package/src/runtime/vdom/VComment.js +1 -1
  233. package/src/runtime/vdom/VComponent.js +1 -1
  234. package/src/runtime/vdom/VDocumentFragment.js +1 -1
  235. package/src/runtime/vdom/VElement.js +4 -11
  236. package/src/runtime/vdom/VFragment.js +1 -1
  237. package/src/runtime/vdom/VNode.js +1 -1
  238. package/src/runtime/vdom/VText.js +1 -1
  239. package/src/runtime/vdom/helpers/attrs.js +0 -7
  240. package/src/runtime/vdom/index.js +1 -1
  241. package/src/runtime/vdom/morphdom/fragment.js +1 -1
  242. package/src/runtime/vdom/morphdom/specialElHandlers.js +1 -1
  243. package/src/taglib/taglib-finder/index.js +5 -5
  244. package/src/taglib/taglib-loader/Tag.js +8 -8
  245. package/src/taglib/taglib-loader/Taglib.js +1 -1
  246. package/src/taglib/taglib-loader/loadAttributeFromProps.js +1 -1
  247. package/src/taglib/taglib-loader/loadTagFromProps.js +29 -14
  248. package/src/taglib/taglib-loader/loadTaglibFromProps.js +9 -9
  249. package/src/taglib/taglib-loader/scanTagsDir.js +6 -6
  250. package/src/taglib/taglib-lookup/TaglibLookup.js +8 -8
@@ -11,7 +11,7 @@ const CUSTOM_TAG_KEY = Symbol("CustomTag");
11
11
  function getNestedVariables(elNode, tagDef, codegen) {
12
12
  let variableNames = [];
13
13
  if (tagDef.forEachVariable) {
14
- tagDef.forEachVariable(nestedVar => {
14
+ tagDef.forEachVariable((nestedVar) => {
15
15
  let varName;
16
16
  if (nestedVar.nameFromAttribute) {
17
17
  let possibleNameAttributes =
@@ -67,7 +67,7 @@ function getNestedVariables(elNode, tagDef, codegen) {
67
67
  }
68
68
 
69
69
  if (elNode.params.length) {
70
- elNode.params.forEach(variable => {
70
+ elNode.params.forEach((variable) => {
71
71
  if (typeof variable === "string") {
72
72
  variable = codegen.builder.identifier(variable);
73
73
  }
@@ -83,7 +83,7 @@ function getAllowedAttributesString(tagName, context) {
83
83
 
84
84
  let tagDef = context.taglibLookup.getTag(tagName);
85
85
  if (tagDef) {
86
- tagDef.forEachAttribute(attrDef => {
86
+ tagDef.forEachAttribute((attrDef) => {
87
87
  attrNames.push(attrDef.name);
88
88
  });
89
89
 
@@ -121,7 +121,7 @@ function checkIfNestedTagCanBeAddedDirectlyToInput(nestedTag, parentCustomTag) {
121
121
  }
122
122
 
123
123
  function processDirectlyNestedTags(node, codegen) {
124
- node.forEachChild(child => {
124
+ node.forEachChild((child) => {
125
125
  if (child.type === "CustomTag") {
126
126
  let customTag = child;
127
127
 
@@ -367,7 +367,7 @@ class CustomTag extends HtmlElement {
367
367
  }
368
368
  attrProps = builder.objectExpression(explicitAttrs);
369
369
  if (computedAttrs) {
370
- computedAttrs.forEach(prop => attrProps.properties.push(prop));
370
+ computedAttrs.forEach((prop) => attrProps.properties.push(prop));
371
371
  }
372
372
  attrs.push(attrProps);
373
373
  }
@@ -444,9 +444,9 @@ class CustomTag extends HtmlElement {
444
444
  name: fullyQualifiedName,
445
445
  attributes: {
446
446
  "*": {
447
- targetProperty: null
448
- }
449
- }
447
+ targetProperty: null,
448
+ },
449
+ },
450
450
  },
451
451
  context.filename
452
452
  );
@@ -552,13 +552,13 @@ class CustomTag extends HtmlElement {
552
552
  );
553
553
 
554
554
  let loadTag = builder.functionCall(context.helper("loadTag"), [
555
- templateVar
555
+ templateVar,
556
556
  ]);
557
557
  let tagVar = codegen.addStaticVar(tagVarName, loadTag);
558
558
 
559
559
  renderTagNode = this.generateRenderTagCode(codegen, tagVar, [
560
560
  inputProps,
561
- builder.identifierOut()
561
+ builder.identifierOut(),
562
562
  ]);
563
563
  } else {
564
564
  if (rendererRequirePath) {
@@ -602,18 +602,18 @@ class CustomTag extends HtmlElement {
602
602
  argumentNode,
603
603
  properties
604
604
  ? builder.objectExpression(
605
- Object.keys(properties).map(propName => {
605
+ Object.keys(properties).map((propName) => {
606
606
  return builder.property(
607
607
  builder.literal(propName),
608
608
  properties[propName]
609
609
  );
610
610
  })
611
611
  )
612
- : builder.literalNull()
612
+ : builder.literalNull(),
613
613
  ];
614
614
  } else {
615
615
  loadTag = builder.functionCall(context.helper("loadTag"), [
616
- requireRendererFunctionCall // The first param is the renderer
616
+ requireRendererFunctionCall, // The first param is the renderer
617
617
  ]);
618
618
 
619
619
  tagArgs = [inputProps, builder.identifierOut()];
@@ -797,7 +797,7 @@ class CustomTag extends HtmlElement {
797
797
  let additionalAttrs = renderBody &&
798
798
  !isDynamicTag && {
799
799
  [(tagDef.bodyFunction && tagDef.bodyFunction.name) || "renderBody"]:
800
- renderBody
800
+ renderBody,
801
801
  };
802
802
  let inputProps = this.buildInputProps(codegen, additionalAttrs);
803
803
  let renderTagNode = this.generateRenderNode(
@@ -13,14 +13,14 @@ class Declaration extends Node {
13
13
  return [
14
14
  builder.htmlLiteral("<?"),
15
15
  codegen.generateCode(builder.text(this.declaration)),
16
- builder.htmlLiteral("?>")
16
+ builder.htmlLiteral("?>"),
17
17
  ];
18
18
  }
19
19
 
20
20
  toJSON() {
21
21
  return {
22
22
  type: this.type,
23
- value: this.value
23
+ value: this.value,
24
24
  };
25
25
  }
26
26
  }
@@ -13,7 +13,7 @@ class DocumentType extends Node {
13
13
  return [
14
14
  builder.htmlLiteral("<!"),
15
15
  builder.html(codegen.generateCode(this.documentType)),
16
- builder.htmlLiteral(">")
16
+ builder.htmlLiteral(">"),
17
17
  ];
18
18
  }
19
19
 
@@ -24,7 +24,7 @@ class DocumentType extends Node {
24
24
  toJSON() {
25
25
  return {
26
26
  type: this.type,
27
- value: this.documentType
27
+ value: this.documentType,
28
28
  };
29
29
  }
30
30
  }
@@ -17,7 +17,7 @@ class ForEach extends Node {
17
17
 
18
18
  return builder.functionCall(context.helper("forOf"), [
19
19
  this.of,
20
- builder.functionDeclaration(null, this.params, this.body)
20
+ builder.functionDeclaration(null, this.params, this.body),
21
21
  ]);
22
22
  }
23
23
 
@@ -20,7 +20,7 @@ class ForEachProp extends Node {
20
20
 
21
21
  return builder.functionCall(context.helper("forIn"), [
22
22
  inExpression,
23
- builder.functionDeclaration(null, params, body)
23
+ builder.functionDeclaration(null, params, body),
24
24
  ]);
25
25
  }
26
26
 
@@ -30,7 +30,7 @@ class ForRange extends Node {
30
30
  from,
31
31
  to,
32
32
  step,
33
- builder.functionDeclaration(null, params, this.body)
33
+ builder.functionDeclaration(null, params, this.body),
34
34
  ]);
35
35
  }
36
36
 
@@ -19,19 +19,19 @@ function flattenAttrConcats(node) {
19
19
  if (isString) {
20
20
  return {
21
21
  isString: true,
22
- concats: left.concats.concat(right.concats)
22
+ concats: left.concats.concat(right.concats),
23
23
  };
24
24
  } else {
25
25
  return {
26
26
  isString: false,
27
- concats: [node]
27
+ concats: [node],
28
28
  };
29
29
  }
30
30
  }
31
31
 
32
32
  return {
33
33
  isString: isStringLiteral(node) || node.type === "AttributePlaceholder",
34
- concats: [node]
34
+ concats: [node],
35
35
  };
36
36
  }
37
37
 
@@ -125,7 +125,7 @@ module.exports = function generateCode(node, codegen) {
125
125
  return [
126
126
  builder.htmlLiteral(" " + name + "("),
127
127
  builder.htmlLiteral(argument),
128
- builder.htmlLiteral(")")
128
+ builder.htmlLiteral(")"),
129
129
  ];
130
130
  } else {
131
131
  // Attribute with no value is a boolean attribute
@@ -25,11 +25,11 @@ module.exports = function generateCode(node, codegen, vdomUtil) {
25
25
  } else {
26
26
  if (name === "class") {
27
27
  node.value = builder.functionCall(context.helper("classValue"), [
28
- attrValue
28
+ attrValue,
29
29
  ]);
30
30
  } else if (name === "style") {
31
31
  node.value = builder.functionCall(context.helper("styleValue"), [
32
- attrValue
32
+ attrValue,
33
33
  ]);
34
34
  }
35
35
  }
@@ -96,7 +96,7 @@ class HtmlAttributeCollection {
96
96
  } else {
97
97
  this.addAttribute({
98
98
  name: name,
99
- value: value
99
+ value: value,
100
100
  });
101
101
  }
102
102
  }
@@ -119,7 +119,7 @@ class HtmlAttributeCollection {
119
119
 
120
120
  if (attributes) {
121
121
  if (Array.isArray(attributes)) {
122
- attributes.forEach(attr => {
122
+ attributes.forEach((attr) => {
123
123
  this.addAttribute(attr);
124
124
  });
125
125
  } else {
@@ -138,7 +138,7 @@ class HtmlAttributeCollection {
138
138
  } else {
139
139
  attrDef = {
140
140
  name: attrName,
141
- value: attrValue
141
+ value: attrValue,
142
142
  };
143
143
  }
144
144
 
@@ -15,7 +15,7 @@ class HtmlComment extends Node {
15
15
  return [
16
16
  builder.htmlLiteral("<!--"),
17
17
  builder.html(comment),
18
- builder.htmlLiteral("-->")
18
+ builder.htmlLiteral("-->"),
19
19
  ];
20
20
  }
21
21
 
@@ -15,7 +15,7 @@ class EndTag extends Node {
15
15
  return [
16
16
  builder.htmlLiteral("</"),
17
17
  builder.html(tagName),
18
- builder.htmlLiteral(">")
18
+ builder.htmlLiteral(">"),
19
19
  ];
20
20
  }
21
21
  }
@@ -29,7 +29,7 @@ class StartTag extends Node {
29
29
  if (this.includeDataMarko) {
30
30
  var dataMarkoArgs = [
31
31
  builder.identifier("out"),
32
- builder.identifier("__component")
32
+ builder.identifier("__component"),
33
33
  ];
34
34
 
35
35
  var properties = this.properties;
@@ -39,7 +39,7 @@ class StartTag extends Node {
39
39
  if (propKeys.length) {
40
40
  dataMarkoArgs.push(
41
41
  builder.objectExpression(
42
- propKeys.map(propName => {
42
+ propKeys.map((propName) => {
43
43
  return builder.property(
44
44
  builder.literal(propName),
45
45
  properties[propName]
@@ -68,7 +68,7 @@ class StartTag extends Node {
68
68
  }
69
69
 
70
70
  if (attributes) {
71
- var hasSpread = attributes.find(attr => attr.spread);
71
+ var hasSpread = attributes.find((attr) => attr.spread);
72
72
  if (!hasSpread) {
73
73
  for (let i = 0; i < attributes.length; i++) {
74
74
  let attr = attributes[i];
@@ -56,7 +56,7 @@ module.exports = function generateCode(node, codegen) {
56
56
  context.meta.legacy ||
57
57
  context.isFlagSet("legacyWidgetAttrsWithoutBind") ||
58
58
  !context.isStatefulComponent ||
59
- isPreserved(node)
59
+ isPreserved(node),
60
60
  });
61
61
 
62
62
  var endTag;
@@ -64,7 +64,7 @@ module.exports = function generateCode(node, codegen) {
64
64
 
65
65
  if (!openTagOnly) {
66
66
  endTag = new EndTag({
67
- tagName: tagName
67
+ tagName: tagName,
68
68
  });
69
69
  }
70
70
 
@@ -81,7 +81,7 @@ module.exports = function generateCode(node, codegen) {
81
81
  [
82
82
  builder.concat(builder.literal("f_"), node.key),
83
83
  builder.identifier("component"),
84
- builder.literal(1)
84
+ builder.literal(1),
85
85
  ]
86
86
  )
87
87
  )
@@ -108,11 +108,11 @@ module.exports = function generateCode(node, codegen) {
108
108
  codegen.context.helper("propsForPreviousNode"),
109
109
  [
110
110
  builder.objectExpression(
111
- attributes.map(attr =>
111
+ attributes.map((attr) =>
112
112
  builder.property(builder.identifier(attr.name), attr.value)
113
113
  )
114
114
  ),
115
- builder.identifier("out")
115
+ builder.identifier("out"),
116
116
  ]
117
117
  );
118
118
  }
@@ -175,7 +175,7 @@ class HtmlElement extends Node {
175
175
  attributes: this._attributes,
176
176
  tagString: this.tagString,
177
177
  argument: this.argument,
178
- body: this.body
178
+ body: this.body,
179
179
  };
180
180
  }
181
181
 
@@ -45,7 +45,7 @@ function finalizeCreateArgs(createArgs, builder) {
45
45
  const SIMPLE_ATTRS = {
46
46
  class: true,
47
47
  style: true,
48
- id: true
48
+ id: true,
49
49
  };
50
50
 
51
51
  function isStaticProperties(properties) {
@@ -49,7 +49,7 @@ module.exports = function (node, codegen) {
49
49
 
50
50
  if (properties) {
51
51
  Object.keys(properties).forEach(
52
- key => (properties[key] = codegen.generateCode(properties[key]))
52
+ (key) => (properties[key] = codegen.generateCode(properties[key]))
53
53
  );
54
54
  }
55
55
 
@@ -100,7 +100,7 @@ module.exports = function (node, codegen) {
100
100
  isHtmlOnly,
101
101
  nextConstId,
102
102
  runtimeFlags,
103
- isAutoKeyed
103
+ isAutoKeyed,
104
104
  });
105
105
 
106
106
  if (isHtmlOnly) {
@@ -120,7 +120,7 @@ module.exports = function (node, codegen) {
120
120
  ),
121
121
  [
122
122
  builder.concat(builder.literal("f_"), node.key),
123
- builder.identifier("component")
123
+ builder.identifier("component"),
124
124
  ]
125
125
  )
126
126
  )
@@ -26,7 +26,7 @@ class If extends Node {
26
26
  // correctly.
27
27
  let previous = this;
28
28
  let whitespaceNodes = [];
29
- this.forEachNextSibling(curNode => {
29
+ this.forEachNextSibling((curNode) => {
30
30
  if (curNode.type === "Else") {
31
31
  curNode.detach();
32
32
  if (whitespaceNodes.length) {
@@ -74,7 +74,7 @@ class LogicalExpression extends Node {
74
74
  type: "LogicalExpression",
75
75
  left: this.left,
76
76
  operator: this.operator,
77
- right: this.right
77
+ right: this.right,
78
78
  };
79
79
  }
80
80
 
@@ -53,7 +53,7 @@ class MemberExpression extends Node {
53
53
  type: "MemberExpression",
54
54
  object: this.object,
55
55
  property: this.property,
56
- computed: this.computed
56
+ computed: this.computed,
57
57
  };
58
58
  }
59
59
 
@@ -66,7 +66,7 @@ class NewExpression extends Node {
66
66
  return {
67
67
  type: "NewExpression",
68
68
  callee: this.callee,
69
- args: this.args
69
+ args: this.args,
70
70
  };
71
71
  }
72
72
 
@@ -130,7 +130,7 @@ class Node {
130
130
 
131
131
  appendChildren(nodes) {
132
132
  ok(this.body, "Node does not support child nodes: " + this);
133
- nodes.forEach(node => {
133
+ nodes.forEach((node) => {
134
134
  this.body.appendChild(node);
135
135
  });
136
136
  }
@@ -288,7 +288,7 @@ class Node {
288
288
  get bodyText() {
289
289
  var bodyText = "";
290
290
 
291
- this.forEachChild(child => {
291
+ this.forEachChild((child) => {
292
292
  if (child.type === "Text") {
293
293
  var childText = child.argument;
294
294
  if (childText && childText.type === "Literal") {
@@ -361,7 +361,7 @@ class Node {
361
361
  var currentTextLiteral = null;
362
362
  var literalTextNodes = [];
363
363
 
364
- body.forEach(curChild => {
364
+ body.forEach((curChild) => {
365
365
  if (curChild.noOutput) {
366
366
  // Skip over AST nodes that produce no HTML output
367
367
  return;
@@ -426,7 +426,7 @@ class Node {
426
426
  literalTextNodes.forEach(trim);
427
427
  }
428
428
 
429
- literalTextNodes.forEach(textNode => {
429
+ literalTextNodes.forEach((textNode) => {
430
430
  if (textNode.argument.value === "") {
431
431
  textNode.detach();
432
432
  }
@@ -60,7 +60,7 @@ class ObjectExpression extends Node {
60
60
  }
61
61
 
62
62
  if (Array.isArray(props)) {
63
- props.forEach(prop => {
63
+ props.forEach((prop) => {
64
64
  this.addProperty(prop);
65
65
  });
66
66
  }
@@ -91,7 +91,7 @@ class ObjectExpression extends Node {
91
91
  toJSON() {
92
92
  return {
93
93
  type: "ObjectExpression",
94
- properties: this.properties
94
+ properties: this.properties,
95
95
  };
96
96
  }
97
97
 
@@ -51,7 +51,7 @@ class Property extends Node {
51
51
  return {
52
52
  type: "Property",
53
53
  key: this.key,
54
- value: this.value
54
+ value: this.value,
55
55
  };
56
56
  }
57
57
 
@@ -32,7 +32,7 @@ class SequenceExpression extends Node {
32
32
  toJSON() {
33
33
  return {
34
34
  type: "SequenceExpression",
35
- expressions: this.expressions
35
+ expressions: this.expressions,
36
36
  };
37
37
  }
38
38
 
@@ -56,7 +56,7 @@ class TemplateLiteral extends Node {
56
56
 
57
57
  function escapeQuasi(quasi, quote) {
58
58
  if (!quasi) return "";
59
- return quasi.replace(/["`\\\n\r\u2028\u2029]|\${/g, match => {
59
+ return quasi.replace(/["`\\\n\r\u2028\u2029]|\${/g, (match) => {
60
60
  switch (match) {
61
61
  case quote:
62
62
  case "${":
@@ -6,7 +6,7 @@ function createVarsArray(vars) {
6
6
  var varInit = vars[varName];
7
7
  return {
8
8
  id: varName,
9
- init: varInit
9
+ init: varInit,
10
10
  };
11
11
  });
12
12
  }
@@ -115,7 +115,7 @@ class TemplateRoot extends Node {
115
115
  context,
116
116
  templateVar,
117
117
  templateRendererMember,
118
- renderFunctionVar
118
+ renderFunctionVar,
119
119
  };
120
120
 
121
121
  assignRenderCode = this.generateAssignRenderCode(eventArgs);
@@ -152,7 +152,7 @@ class TemplateRoot extends Node {
152
152
  toJSON() {
153
153
  return {
154
154
  type: this.type,
155
- body: this.body
155
+ body: this.body,
156
156
  };
157
157
  }
158
158
 
@@ -45,7 +45,7 @@ class Text extends Node {
45
45
  toJSON() {
46
46
  return {
47
47
  type: this.type,
48
- argument: this.argument
48
+ argument: this.argument,
49
49
  };
50
50
  }
51
51
  }
@@ -55,7 +55,7 @@ class UnaryExpression extends Node {
55
55
  type: "UnaryExpression",
56
56
  argument: this.argument,
57
57
  operator: this.operator,
58
- prefix: this.prefix
58
+ prefix: this.prefix,
59
59
  };
60
60
  }
61
61
 
@@ -51,7 +51,7 @@ class UpdateExpression extends Node {
51
51
  type: "UpdateExpression",
52
52
  argument: this.argument,
53
53
  operator: this.operator,
54
- prefix: this.prefix
54
+ prefix: this.prefix,
55
55
  };
56
56
  }
57
57
 
@@ -66,7 +66,7 @@ if (g.__MARKO_CONFIG) {
66
66
  * Controls whether or not a key should be assigned to all HTML
67
67
  * and custom tags at compile-time. The default is `true`
68
68
  */
69
- autoKeyEnabled: true
69
+ autoKeyEnabled: true,
70
70
  };
71
71
 
72
72
  if (process.env.MARKO_CONFIG) {
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "defaultOptions", {
18
18
  return globalConfig;
19
19
  },
20
20
  enumerable: true,
21
- configurable: false
21
+ configurable: false,
22
22
  });
23
23
 
24
24
  Object.defineProperty(exports, "config", {
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "config", {
26
26
  return globalConfig;
27
27
  },
28
28
  enumerable: true,
29
- configurable: false
29
+ configurable: false,
30
30
  });
31
31
 
32
32
  var defaultParser = new Parser(new HtmlJsParser());
@@ -42,7 +42,7 @@ function configure(newConfig) {
42
42
 
43
43
  var defaultCompiler = new Compiler({
44
44
  parser: defaultParser,
45
- builder: Builder.DEFAULT_BUILDER
45
+ builder: Builder.DEFAULT_BUILDER,
46
46
  });
47
47
 
48
48
  function createBuilder(options) {
@@ -123,7 +123,7 @@ function compileForBrowser(src, filename, options, callback) {
123
123
  output: "vdom",
124
124
  meta: false,
125
125
  browser: true,
126
- sourceOnly: false
126
+ sourceOnly: false,
127
127
  },
128
128
  options
129
129
  );
@@ -191,7 +191,7 @@ function parseRaw(templateSrc, filename, options) {
191
191
  Object.assign(
192
192
  {
193
193
  raw: true,
194
- ignorePlaceholders: true
194
+ ignorePlaceholders: true,
195
195
  },
196
196
  options
197
197
  )
@@ -7,7 +7,7 @@ var deresolve = require("./util/deresolve");
7
7
  const deresolveOptions = {
8
8
  shouldRemoveExt(ext) {
9
9
  return ext === ".js" || ext === ".json" || ext === ".es6";
10
- }
10
+ },
11
11
  };
12
12
 
13
13
  // This allows us to swap out a different implementation in the browser...
@@ -28,7 +28,7 @@ var helpers = {
28
28
 
29
29
  deresolve: function (targetFilename, from) {
30
30
  return deresolve(targetFilename, from, deresolveOptions);
31
- }
31
+ },
32
32
  };
33
33
 
34
34
  module.exports = helpers;
@@ -29,7 +29,7 @@ class UniqueVars {
29
29
 
30
30
  let newEntry = {
31
31
  name: name + ++entry.counter,
32
- value: value
32
+ value: value,
33
33
  };
34
34
 
35
35
  entry.vars.push(newEntry);
@@ -39,10 +39,10 @@ class UniqueVars {
39
39
  vars: [
40
40
  {
41
41
  name: name,
42
- value: value
43
- }
42
+ value: value,
43
+ },
44
44
  ],
45
- counter: 1
45
+ counter: 1,
46
46
  };
47
47
 
48
48
  this.vars[name] = entry;
@@ -140,7 +140,7 @@ module.exports = function convertRawJavaScriptAst(ast, builder) {
140
140
  return null;
141
141
  }
142
142
  case "TemplateLiteral": {
143
- const quasis = node.quasis.map(q => q.value.cooked);
143
+ const quasis = node.quasis.map((q) => q.value.cooked);
144
144
  const expressions = convert(node.expressions);
145
145
  if (expressions) {
146
146
  return builder.templateLiteral(quasis, expressions);