@lwc/template-compiler 2.7.2 → 2.9.0

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.
Files changed (58) hide show
  1. package/dist/commonjs/codegen/codegen.js +89 -16
  2. package/dist/commonjs/codegen/codegen.js.map +1 -1
  3. package/dist/commonjs/codegen/formatters/function.js +3 -1
  4. package/dist/commonjs/codegen/formatters/function.js.map +1 -1
  5. package/dist/commonjs/codegen/formatters/module.js +3 -1
  6. package/dist/commonjs/codegen/formatters/module.js.map +1 -1
  7. package/dist/commonjs/codegen/helpers.js +34 -20
  8. package/dist/commonjs/codegen/helpers.js.map +1 -1
  9. package/dist/commonjs/codegen/index.js +184 -194
  10. package/dist/commonjs/codegen/index.js.map +1 -1
  11. package/dist/commonjs/codegen/optimize.js +115 -0
  12. package/dist/commonjs/codegen/optimize.js.map +1 -0
  13. package/dist/commonjs/index.js +12 -5
  14. package/dist/commonjs/index.js.map +1 -1
  15. package/dist/commonjs/parser/attribute.js +5 -7
  16. package/dist/commonjs/parser/attribute.js.map +1 -1
  17. package/dist/commonjs/parser/constants.js +1 -10
  18. package/dist/commonjs/parser/constants.js.map +1 -1
  19. package/dist/commonjs/parser/expression.js +5 -2
  20. package/dist/commonjs/parser/expression.js.map +1 -1
  21. package/dist/commonjs/parser/html.js +18 -1
  22. package/dist/commonjs/parser/html.js.map +1 -1
  23. package/dist/commonjs/parser/index.js +371 -342
  24. package/dist/commonjs/parser/index.js.map +1 -1
  25. package/dist/commonjs/parser/parse5Errors.js +77 -0
  26. package/dist/commonjs/parser/parse5Errors.js.map +1 -0
  27. package/dist/commonjs/parser/parser.js +85 -30
  28. package/dist/commonjs/parser/parser.js.map +1 -1
  29. package/dist/commonjs/shared/ast.js +303 -0
  30. package/dist/commonjs/shared/ast.js.map +1 -0
  31. package/dist/commonjs/shared/estree.js +9 -1
  32. package/dist/commonjs/shared/estree.js.map +1 -1
  33. package/dist/commonjs/shared/parse5.js +1 -15
  34. package/dist/commonjs/shared/parse5.js.map +1 -1
  35. package/dist/commonjs/shared/types.js +1 -7
  36. package/dist/commonjs/shared/types.js.map +1 -1
  37. package/dist/types/codegen/codegen.d.ts +25 -3
  38. package/dist/types/codegen/helpers.d.ts +11 -5
  39. package/dist/types/codegen/index.d.ts +2 -2
  40. package/dist/types/codegen/optimize.d.ts +33 -0
  41. package/dist/types/index.d.ts +1 -2
  42. package/dist/types/parser/attribute.d.ts +7 -7
  43. package/dist/types/parser/constants.d.ts +0 -9
  44. package/dist/types/parser/expression.d.ts +3 -4
  45. package/dist/types/parser/parse5Errors.d.ts +2 -0
  46. package/dist/types/parser/parser.d.ts +57 -28
  47. package/dist/types/shared/ast.d.ts +45 -0
  48. package/dist/types/shared/estree.d.ts +2 -2
  49. package/dist/types/shared/parse5.d.ts +0 -1
  50. package/dist/types/shared/types.d.ts +129 -86
  51. package/package.json +4 -4
  52. package/LICENSE +0 -10
  53. package/dist/commonjs/codegen/scope.js +0 -61
  54. package/dist/commonjs/codegen/scope.js.map +0 -1
  55. package/dist/commonjs/shared/ir.js +0 -90
  56. package/dist/commonjs/shared/ir.js.map +0 -1
  57. package/dist/types/codegen/scope.d.ts +0 -8
  58. package/dist/types/shared/ir.d.ts +0 -15
@@ -19,9 +19,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
+ /*
23
+ * Copyright (c) 2018, salesforce.com, inc.
24
+ * All rights reserved.
25
+ * SPDX-License-Identifier: MIT
26
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
27
+ */
28
+ const estree_walker_1 = require("estree-walker");
22
29
  const t = __importStar(require("../shared/estree"));
23
30
  const types_1 = require("../shared/types");
24
31
  const constants_1 = require("../shared/constants");
32
+ const ast_1 = require("../shared/ast");
33
+ const estree_1 = require("../shared/estree");
25
34
  const RENDER_APIS = {
26
35
  iterator: { name: 'i', alias: 'api_iterator' },
27
36
  flatten: { name: 'f', alias: 'api_flatten' },
@@ -41,7 +50,7 @@ const RENDER_APIS = {
41
50
  };
42
51
  class CodeGen {
43
52
  constructor({ root, config, scopeFragmentId, }) {
44
- var _a, _b, _c, _d, _e;
53
+ var _a, _b, _c, _d;
45
54
  this.currentId = 0;
46
55
  this.currentKey = 0;
47
56
  this.innerHtmlInstances = 0;
@@ -51,32 +60,37 @@ class CodeGen {
51
60
  this.memorizedIds = [];
52
61
  this.referencedComponents = new Set();
53
62
  this.root = root;
54
- this.renderMode = (_b = (_a = root.lwc) === null || _a === void 0 ? void 0 : _a.renderMode) !== null && _b !== void 0 ? _b : types_1.LWCDirectiveRenderMode.shadow;
55
- this.preserveComments = (_e = (_d = (_c = root.lwc) === null || _c === void 0 ? void 0 : _c.preserveComments) === null || _d === void 0 ? void 0 : _d.value) !== null && _e !== void 0 ? _e : config.preserveHtmlComments;
63
+ this.renderMode =
64
+ (_b = (_a = root.directives.find(ast_1.isRenderModeDirective)) === null || _a === void 0 ? void 0 : _a.value.value) !== null && _b !== void 0 ? _b : types_1.LWCDirectiveRenderMode.shadow;
65
+ this.preserveComments =
66
+ (_d = (_c = root.directives.find(ast_1.isPreserveCommentsDirective)) === null || _c === void 0 ? void 0 : _c.value.value) !== null && _d !== void 0 ? _d : config.preserveHtmlComments;
56
67
  this.scopeFragmentId = scopeFragmentId;
68
+ this.scope = this.createScope();
57
69
  }
58
70
  generateKey() {
59
71
  return this.currentKey++;
60
72
  }
61
73
  genElement(tagName, data, children) {
62
- return this._renderApiCall(RENDER_APIS.element, [t.literal(tagName), data, children]);
74
+ const args = [t.literal(tagName), data];
75
+ if (!(0, estree_1.isArrayExpression)(children) || children.elements.length > 0) {
76
+ args.push(children); // only generate children if non-empty
77
+ }
78
+ return this._renderApiCall(RENDER_APIS.element, args);
63
79
  }
64
80
  genCustomElement(tagName, componentClass, data, children) {
65
81
  this.referencedComponents.add(tagName);
66
- return this._renderApiCall(RENDER_APIS.customElement, [
67
- t.literal(tagName),
68
- componentClass,
69
- data,
70
- children,
71
- ]);
82
+ const args = [t.literal(tagName), componentClass, data];
83
+ if (!(0, estree_1.isArrayExpression)(children) || children.elements.length > 0) {
84
+ args.push(children); // only generate children if non-empty
85
+ }
86
+ return this._renderApiCall(RENDER_APIS.customElement, args);
72
87
  }
73
88
  genDynamicElement(tagName, ctor, data, children) {
74
- return this._renderApiCall(RENDER_APIS.dynamicCtor, [
75
- t.literal(tagName),
76
- ctor,
77
- data,
78
- children,
79
- ]);
89
+ const args = [t.literal(tagName), ctor, data];
90
+ if (!(0, estree_1.isArrayExpression)(children) || children.elements.length > 0) {
91
+ args.push(children); // only generate children if non-empty
92
+ }
93
+ return this._renderApiCall(RENDER_APIS.dynamicCtor, args);
80
94
  }
81
95
  genText(value) {
82
96
  const mappedValues = value.map((v) => {
@@ -176,6 +190,65 @@ class CodeGen {
176
190
  }
177
191
  return t.callExpression(identifier, params);
178
192
  }
193
+ beginScope() {
194
+ this.scope = this.createScope(this.scope);
195
+ }
196
+ createScope(parent = null) {
197
+ return {
198
+ parent,
199
+ declaration: new Set(),
200
+ };
201
+ }
202
+ endScope() {
203
+ if (!this.scope.parent) {
204
+ throw new Error("Can't invoke endScope if the current scope has no parent");
205
+ }
206
+ this.scope = this.scope.parent;
207
+ }
208
+ declareIdentifier(identifier) {
209
+ this.scope.declaration.add(identifier.name);
210
+ }
211
+ /**
212
+ * Searches the scopes to find an identifier with a matching name.
213
+ */
214
+ isLocalIdentifier(identifier) {
215
+ let scope = this.scope;
216
+ while (scope !== null) {
217
+ if (scope.declaration.has(identifier.name)) {
218
+ return true;
219
+ }
220
+ scope = scope.parent;
221
+ }
222
+ return false;
223
+ }
224
+ /**
225
+ * Bind the passed expression to the component instance. It applies the following transformation to the expression:
226
+ * - {value} --> {$cmp.value}
227
+ * - {value[index]} --> {$cmp.value[$cmp.index]}
228
+ */
229
+ bindExpression(expression) {
230
+ if (t.isIdentifier(expression)) {
231
+ if (!this.isLocalIdentifier(expression)) {
232
+ return t.memberExpression(t.identifier(constants_1.TEMPLATE_PARAMS.INSTANCE), expression);
233
+ }
234
+ else {
235
+ return expression;
236
+ }
237
+ }
238
+ const scope = this;
239
+ (0, estree_walker_1.walk)(expression, {
240
+ leave(node, parent) {
241
+ if (parent !== null &&
242
+ t.isIdentifier(node) &&
243
+ t.isMemberExpression(parent) &&
244
+ parent.object === node &&
245
+ !scope.isLocalIdentifier(node)) {
246
+ this.replace(t.memberExpression(t.identifier(constants_1.TEMPLATE_PARAMS.INSTANCE), node));
247
+ }
248
+ },
249
+ });
250
+ return expression;
251
+ }
179
252
  }
180
253
  exports.default = CodeGen;
181
254
  //# sourceMappingURL=codegen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/codegen/codegen.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ exports.format = void 0;
29
29
  const t = __importStar(require("../../shared/estree"));
30
30
  const constants_1 = require("../../shared/constants");
31
31
  const helpers_1 = require("../helpers");
32
+ const optimize_1 = require("../optimize");
32
33
  /**
33
34
  * Generate a function body AST from a template ESTree AST. This function can then be instantiated
34
35
  * via `new Function(code, modules)` The generated function retrieves receives the dependent LWC
@@ -59,10 +60,11 @@ function format(templateFn, codeGen) {
59
60
  })),
60
61
  ]);
61
62
  });
63
+ const optimizedTemplateDeclarations = (0, optimize_1.optimizeStaticExpressions)(templateFn);
62
64
  const metadata = (0, helpers_1.generateTemplateMetadata)(codeGen);
63
65
  return t.program([
64
66
  ...lookups,
65
- templateFn,
67
+ ...optimizedTemplateDeclarations,
66
68
  ...metadata,
67
69
  t.returnStatement(t.identifier(constants_1.TEMPLATE_FUNCTION_NAME)),
68
70
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/codegen/formatters/function.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;AAEH,uDAAyC;AACzC,sDAA4F;AAG5F,wCAAmF;AAEnF;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,MAAM,CAAC,UAAiC,EAAE,OAAgB;IACtE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;SACnD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,MAAM,eAAe,GAAG,IAAA,qCAA2B,EAAC,IAAI,CAAC,CAAC;QAE1D,OAAO,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE;YAClC,CAAC,CAAC,kBAAkB,CAChB,eAAe,EACf,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,sCAA0B,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1E,QAAQ,EAAE,IAAI;aACjB,CAAC,CACL;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IAEnD,OAAO,CAAC,CAAC,OAAO,CAAC;QACb,GAAG,OAAO;QACV,UAAU;QACV,GAAG,QAAQ;QACX,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,kCAAsB,CAAC,CAAC;KAC1D,CAAC,CAAC;AACP,CAAC;AAxBD,wBAwBC"}
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../src/codegen/formatters/function.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;AAEH,uDAAyC;AACzC,sDAA4F;AAG5F,wCAAmF;AACnF,0CAAwD;AAExD;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,MAAM,CAAC,UAAiC,EAAE,OAAgB;IACtE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;SACnD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,MAAM,eAAe,GAAG,IAAA,qCAA2B,EAAC,IAAI,CAAC,CAAC;QAE1D,OAAO,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE;YAClC,CAAC,CAAC,kBAAkB,CAChB,eAAe,EACf,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,sCAA0B,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1E,QAAQ,EAAE,IAAI;aACjB,CAAC,CACL;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEP,MAAM,6BAA6B,GAAG,IAAA,oCAAyB,EAAC,UAAU,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IAEnD,OAAO,CAAC,CAAC,OAAO,CAAC;QACb,GAAG,OAAO;QACV,GAAG,6BAA6B;QAChC,GAAG,QAAQ;QACX,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,kCAAsB,CAAC,CAAC;KAC1D,CAAC,CAAC;AACP,CAAC;AA1BD,wBA0BC"}
@@ -30,6 +30,7 @@ const t = __importStar(require("../../shared/estree"));
30
30
  const naming_1 = require("../../shared/naming");
31
31
  const constants_1 = require("../../shared/constants");
32
32
  const helpers_1 = require("../helpers");
33
+ const optimize_1 = require("../optimize");
33
34
  function generateComponentImports(codeGen) {
34
35
  return Array.from(codeGen.referencedComponents).map((name) => {
35
36
  const localIdentifier = (0, helpers_1.identifierFromComponentName)(name);
@@ -67,8 +68,9 @@ function format(templateFn, codeGen) {
67
68
  codeGen.usedLwcApis.add(constants_1.SECURE_REGISTER_TEMPLATE_METHOD_NAME);
68
69
  const imports = [...generateComponentImports(codeGen), generateLwcApisImport(codeGen)];
69
70
  const metadata = (0, helpers_1.generateTemplateMetadata)(codeGen);
71
+ const optimizedTemplateDeclarations = (0, optimize_1.optimizeStaticExpressions)(templateFn);
70
72
  const templateBody = [
71
- templateFn,
73
+ ...optimizedTemplateDeclarations,
72
74
  t.exportDefaultDeclaration(t.callExpression(t.identifier(constants_1.SECURE_REGISTER_TEMPLATE_METHOD_NAME), [
73
75
  t.identifier(constants_1.TEMPLATE_FUNCTION_NAME),
74
76
  ])),
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/codegen/formatters/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,uDAAyC;AACzC,gDAA2D;AAC3D,sDAIgC;AAGhC,wCAAmF;AAEnF,SAAS,wBAAwB,CAAC,OAAgB;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzD,MAAM,eAAe,GAAG,IAAA,qCAA2B,EAAC,IAAI,CAAC,CAAC;QAE1D,OAAO,CAAC,CAAC,iBAAiB,CACtB,CAAC,CAAC,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,EAC3C,CAAC,CAAC,OAAO,CAAC,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC,CACxC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SAC1C,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEP,OAAO,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,2BAAe,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,MAAM,CAAC,UAAiC,EAAE,OAAgB;IACtE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,gDAAoC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvF,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG;QACjB,UAAU;QACV,CAAC,CAAC,wBAAwB,CACtB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,gDAAoC,CAAC,EAAE;YACjE,CAAC,CAAC,UAAU,CAAC,kCAAsB,CAAC;SACvC,CAAC,CACL;KACJ,CAAC;IAEF,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAjBD,wBAiBC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/codegen/formatters/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,uDAAyC;AACzC,gDAA2D;AAC3D,sDAIgC;AAGhC,wCAAmF;AACnF,0CAAwD;AAExD,SAAS,wBAAwB,CAAC,OAAgB;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzD,MAAM,eAAe,GAAG,IAAA,qCAA2B,EAAC,IAAI,CAAC,CAAC;QAE1D,OAAO,CAAC,CAAC,iBAAiB,CACtB,CAAC,CAAC,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,EAC3C,CAAC,CAAC,OAAO,CAAC,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC,CACxC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SAC1C,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEP,OAAO,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,2BAAe,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,MAAM,CAAC,UAAiC,EAAE,OAAgB;IACtE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,gDAAoC,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,CAAC,GAAG,wBAAwB,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvF,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,6BAA6B,GAAG,IAAA,oCAAyB,EAAC,UAAU,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG;QACjB,GAAG,6BAA6B;QAChC,CAAC,CAAC,wBAAwB,CACtB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,gDAAoC,CAAC,EAAE;YACjE,CAAC,CAAC,UAAU,CAAC,kCAAsB,CAAC;SACvC,CAAC,CACL;KACJ,CAAC;IAEF,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAnBD,wBAmBC"}
@@ -29,7 +29,7 @@ exports.parseClassNames = exports.styleMapToStyleDeclsAST = exports.parseStyleTe
29
29
  const t = __importStar(require("../shared/estree"));
30
30
  const utils_1 = require("../shared/utils");
31
31
  const types_1 = require("../shared/types");
32
- const ir_1 = require("../shared/ir");
32
+ const ast_1 = require("../shared/ast");
33
33
  const constants_1 = require("../shared/constants");
34
34
  function identifierFromComponentName(name) {
35
35
  return t.identifier(`_${(0, utils_1.toPropertyName)(name)}`);
@@ -48,42 +48,56 @@ function objectToAST(obj, valueMapper) {
48
48
  }
49
49
  exports.objectToAST = objectToAST;
50
50
  function isDynamic(element) {
51
- var _a;
52
- return ((_a = element.lwc) === null || _a === void 0 ? void 0 : _a.dynamic) !== undefined;
51
+ return element.directives.some(ast_1.isDynamicDirective);
53
52
  }
54
53
  function containsDynamicChildren(children) {
55
- return children.some((child) => (0, ir_1.isElement)(child) && isDynamic(child));
54
+ return children.some((child) => {
55
+ if ((0, ast_1.isForBlock)(child) || (0, ast_1.isIf)(child)) {
56
+ return containsDynamicChildren(child.children);
57
+ }
58
+ if ((0, ast_1.isBaseElement)(child)) {
59
+ return isDynamic(child);
60
+ }
61
+ return false;
62
+ });
56
63
  }
57
64
  exports.containsDynamicChildren = containsDynamicChildren;
58
- function shouldFlatten(children, codeGen) {
59
- return children.some((child) => (0, ir_1.isElement)(child) &&
60
- (isDynamic(child) ||
61
- !!child.forEach ||
62
- !!child.forOf ||
63
- (codeGen.renderMode === types_1.LWCDirectiveRenderMode.light && child.tag === 'slot') ||
64
- ((0, ir_1.isTemplate)(child) && shouldFlatten(child.children, codeGen))));
65
+ /**
66
+ * Returns true if the children should be flattened.
67
+ *
68
+ * Children should be flattened if they contain an iterator,
69
+ * a dynamic directive or a slot inside a light dom element.
70
+ */
71
+ function shouldFlatten(codeGen, children) {
72
+ return children.some((child) => (0, ast_1.isForBlock)(child) ||
73
+ ((0, ast_1.isParentNode)(child) &&
74
+ (((0, ast_1.isBaseElement)(child) && isDynamic(child)) ||
75
+ // If node is only a control flow node and does not map to a stand alone element.
76
+ // Search children to determine if it should be flattened.
77
+ ((0, ast_1.isIf)(child) && shouldFlatten(codeGen, child.children)) ||
78
+ (codeGen.renderMode === types_1.LWCDirectiveRenderMode.light && (0, ast_1.isSlot)(child)))));
65
79
  }
66
80
  exports.shouldFlatten = shouldFlatten;
67
81
  /**
68
82
  * Returns true if the AST element or any of its descendants use an id attribute.
69
83
  */
70
- function hasIdAttribute(element) {
71
- var _a, _b;
72
- if (((_a = element.attrs) === null || _a === void 0 ? void 0 : _a.id) || ((_b = element.props) === null || _b === void 0 ? void 0 : _b.id)) {
73
- return true;
74
- }
75
- for (const child of element.children) {
76
- if (child.type === 'element' && hasIdAttribute(child)) {
84
+ function hasIdAttribute(node) {
85
+ if ((0, ast_1.isBaseElement)(node)) {
86
+ const hasIdAttr = [...node.attributes, ...node.properties].some(({ name }) => name === 'id');
87
+ if (hasIdAttr) {
77
88
  return true;
78
89
  }
79
90
  }
91
+ if ((0, ast_1.isParentNode)(node)) {
92
+ return node.children.some((child) => hasIdAttribute(child));
93
+ }
80
94
  return false;
81
95
  }
82
96
  exports.hasIdAttribute = hasIdAttribute;
83
- function memorizeHandler(codeGen, element, parentStack, componentHandler, handler) {
97
+ function memorizeHandler(codeGen, componentHandler, handler) {
84
98
  // #439 - The handler can only be memorized if it is bound to component instance
85
99
  const id = getMemberExpressionRoot(componentHandler);
86
- const shouldMemorizeHandler = (0, ir_1.isComponentProp)(id, element, parentStack);
100
+ const shouldMemorizeHandler = !codeGen.isLocalIdentifier(id);
87
101
  // Apply memorization if the handler is memorizable.
88
102
  // $cmp.handlePress -> _m1 || ($ctx._m1 = b($cmp.handlePress))
89
103
  if (shouldMemorizeHandler) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/codegen/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/codegen/helpers.ts"],"names":[],"mappings":"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"}