marko 5.35.14 → 5.35.16

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.
@@ -139,7 +139,8 @@ function addComponentsFromContext(componentsContext, componentsToHydrate) {
139
139
 
140
140
  if (typeof renderBody === "function" && renderBody.toJSON === w10ToJSON) {
141
141
  flags |= FLAG_HAS_RENDER_BODY;
142
- renderBody = input.renderBody = undefined;
142
+ renderBody = undefined;
143
+ if (input) input.renderBody = undefined;
143
144
  }
144
145
 
145
146
  var extra = {
@@ -4,19 +4,20 @@ var attrsHelper = require("./helpers/attrs");
4
4
  var morphdom = require("./morphdom");
5
5
  var vdom = require("./vdom");
6
6
  var VElement = vdom.bz_;
7
- var VDocumentFragment = vdom.bA_;
8
- var VText = vdom.bB_;
9
- var VComponent = vdom.bC_;
10
- var VFragment = vdom.bD_;
11
- var virtualizeHTML = vdom.bE_;
7
+ var VComment = vdom.bA_;
8
+ var VDocumentFragment = vdom.bB_;
9
+ var VText = vdom.bC_;
10
+ var VComponent = vdom.bD_;
11
+ var VFragment = vdom.bE_;
12
+ var virtualizeHTML = vdom.bF_;
12
13
 
13
14
  var EVENT_UPDATE = "update";
14
15
  var EVENT_FINISH = "finish";
15
16
 
16
17
  function State(tree) {
17
- this.bF_ = new EventEmitter();
18
- this.bG_ = tree;
19
- this.bH_ = false;
18
+ this.bG_ = new EventEmitter();
19
+ this.bH_ = tree;
20
+ this.bI_ = false;
20
21
  }
21
22
 
22
23
  function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
@@ -32,18 +33,18 @@ function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
32
33
  state = new State(parentNode);
33
34
  }
34
35
 
35
- this.bI_ = 1;
36
- this.bJ_ = 0;
37
- this.bK_ = null;
38
- this.bL_ = parentOut;
36
+ this.bJ_ = 1;
37
+ this.bK_ = 0;
38
+ this.bL_ = null;
39
+ this.bM_ = parentOut;
39
40
 
40
41
  this.data = {};
41
42
  this.z_ = state;
42
43
  this.ab_ = parentNode;
43
44
  this.global = globalData || {};
44
- this.bM_ = [parentNode];
45
- this.bN_ = false;
46
- this.bO_ = undefined;
45
+ this.bN_ = [parentNode];
46
+ this.bO_ = false;
47
+ this.bP_ = undefined;
47
48
  this.b_ = null;
48
49
 
49
50
  this.a__ = null;
@@ -57,18 +58,18 @@ var proto = AsyncVDOMBuilder.prototype = {
57
58
 
58
59
  bc: function (component, key, ownerComponent) {
59
60
  var vComponent = new VComponent(component, key, ownerComponent);
60
- return this.bP_(vComponent, 0, true);
61
+ return this.bQ_(vComponent, 0, true);
61
62
  },
62
63
 
63
64
  bd_: function (component, key, ownerComponent) {
64
65
  var vComponent = new VComponent(component, key, ownerComponent, true);
65
- this.bP_(vComponent, 0);
66
+ this.bQ_(vComponent, 0);
66
67
  },
67
68
 
68
- bP_: function (child, childCount, pushToStack) {
69
- this.ab_.bQ_(child);
69
+ bQ_: function (child, childCount, pushToStack) {
70
+ this.ab_.bR_(child);
70
71
  if (pushToStack === true) {
71
- this.bM_.push(child);
72
+ this.bN_.push(child);
72
73
  this.ab_ = child;
73
74
  }
74
75
  return childCount === 0 ? this : child;
@@ -84,7 +85,7 @@ var proto = AsyncVDOMBuilder.prototype = {
84
85
  flags,
85
86
  props
86
87
  );
87
- return this.bP_(element, childCount);
88
+ return this.bQ_(element, childCount);
88
89
  },
89
90
 
90
91
  bm_: function (tagName, attrs, key, componentDef, props) {
@@ -102,7 +103,7 @@ var proto = AsyncVDOMBuilder.prototype = {
102
103
  n: function (node, component) {
103
104
  // NOTE: We do a shallow clone since we assume the node is being reused
104
105
  // and a node can only have one parent node.
105
- var clone = node.bR_();
106
+ var clone = node.bS_();
106
107
  this.node(clone);
107
108
  clone._M_ = component;
108
109
 
@@ -110,7 +111,7 @@ var proto = AsyncVDOMBuilder.prototype = {
110
111
  },
111
112
 
112
113
  node: function (node) {
113
- this.ab_.bQ_(node);
114
+ this.ab_.bR_(node);
114
115
  return this;
115
116
  },
116
117
 
@@ -129,10 +130,14 @@ var proto = AsyncVDOMBuilder.prototype = {
129
130
  text = text.toString();
130
131
  }
131
132
 
132
- this.ab_.bQ_(new VText(text, ownerComponent));
133
+ this.ab_.bR_(new VText(text, ownerComponent));
133
134
  return this;
134
135
  },
135
136
 
137
+ comment: function (comment, ownerComponent) {
138
+ return this.node(new VComment(comment, ownerComponent));
139
+ },
140
+
136
141
  html: function (html, ownerComponent) {
137
142
  if (html != null) {
138
143
  var vdomNode = virtualizeHTML(html, ownerComponent);
@@ -160,7 +165,7 @@ var proto = AsyncVDOMBuilder.prototype = {
160
165
  flags,
161
166
  props
162
167
  );
163
- this.bP_(element, childCount, true);
168
+ this.bQ_(element, childCount, true);
164
169
  return this;
165
170
  },
166
171
 
@@ -178,7 +183,7 @@ var proto = AsyncVDOMBuilder.prototype = {
178
183
 
179
184
  bf: function (key, component, preserve) {
180
185
  var fragment = new VFragment(key, component, preserve);
181
- this.bP_(fragment, null, true);
186
+ this.bQ_(fragment, null, true);
182
187
  return this;
183
188
  },
184
189
 
@@ -187,7 +192,7 @@ var proto = AsyncVDOMBuilder.prototype = {
187
192
  },
188
193
 
189
194
  endElement: function () {
190
- var stack = this.bM_;
195
+ var stack = this.bN_;
191
196
  stack.pop();
192
197
  this.ab_ = stack[stack.length - 1];
193
198
  },
@@ -195,44 +200,44 @@ var proto = AsyncVDOMBuilder.prototype = {
195
200
  end: function () {
196
201
  this.ab_ = undefined;
197
202
 
198
- var remaining = --this.bI_;
199
- var parentOut = this.bL_;
203
+ var remaining = --this.bJ_;
204
+ var parentOut = this.bM_;
200
205
 
201
206
  if (remaining === 0) {
202
207
  if (parentOut) {
203
- parentOut.bS_();
208
+ parentOut.bT_();
204
209
  } else {
205
- this.bT_();
210
+ this.bU_();
206
211
  }
207
- } else if (remaining - this.bJ_ === 0) {
208
- this.bU_();
212
+ } else if (remaining - this.bK_ === 0) {
213
+ this.bV_();
209
214
  }
210
215
 
211
216
  return this;
212
217
  },
213
218
 
214
- bS_: function () {
215
- var remaining = --this.bI_;
219
+ bT_: function () {
220
+ var remaining = --this.bJ_;
216
221
 
217
222
  if (remaining === 0) {
218
- var parentOut = this.bL_;
223
+ var parentOut = this.bM_;
219
224
  if (parentOut) {
220
- parentOut.bS_();
225
+ parentOut.bT_();
221
226
  } else {
222
- this.bT_();
227
+ this.bU_();
223
228
  }
224
- } else if (remaining - this.bJ_ === 0) {
225
- this.bU_();
229
+ } else if (remaining - this.bK_ === 0) {
230
+ this.bV_();
226
231
  }
227
232
  },
228
233
 
229
- bT_: function () {
234
+ bU_: function () {
230
235
  var state = this.z_;
231
- state.bH_ = true;
232
- state.bF_.emit(EVENT_FINISH, this.bv_());
236
+ state.bI_ = true;
237
+ state.bG_.emit(EVENT_FINISH, this.bv_());
233
238
  },
234
239
 
235
- bU_: function () {
240
+ bV_: function () {
236
241
  var lastArray = this._last;
237
242
 
238
243
  var i = 0;
@@ -267,7 +272,7 @@ var proto = AsyncVDOMBuilder.prototype = {
267
272
  },
268
273
 
269
274
  beginAsync: function (options) {
270
- if (this.bN_) {
275
+ if (this.bO_) {
271
276
  throw Error(
272
277
  "Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942)."
273
278
  );
@@ -277,16 +282,16 @@ var proto = AsyncVDOMBuilder.prototype = {
277
282
 
278
283
  if (options) {
279
284
  if (options.last) {
280
- this.bJ_++;
285
+ this.bK_++;
281
286
  }
282
287
  }
283
288
 
284
- this.bI_++;
289
+ this.bJ_++;
285
290
 
286
- var documentFragment = this.ab_.bV_();
291
+ var documentFragment = this.ab_.bW_();
287
292
  var asyncOut = new AsyncVDOMBuilder(this.global, documentFragment, this);
288
293
 
289
- state.bF_.emit("beginAsync", {
294
+ state.bG_.emit("beginAsync", {
290
295
  out: asyncOut,
291
296
  parentOut: this
292
297
  });
@@ -299,7 +304,7 @@ var proto = AsyncVDOMBuilder.prototype = {
299
304
  },
300
305
 
301
306
  flush: function () {
302
- var events = this.z_.bF_;
307
+ var events = this.z_.bG_;
303
308
 
304
309
  if (events.listenerCount(EVENT_UPDATE)) {
305
310
  events.emit(EVENT_UPDATE, new RenderResult(this));
@@ -307,22 +312,22 @@ var proto = AsyncVDOMBuilder.prototype = {
307
312
  },
308
313
 
309
314
  ah_: function () {
310
- return this.z_.bG_;
315
+ return this.z_.bH_;
311
316
  },
312
317
 
313
318
  bv_: function () {
314
- return this.bW_ || (this.bW_ = new RenderResult(this));
319
+ return this.bX_ || (this.bX_ = new RenderResult(this));
315
320
  },
316
321
 
317
322
  on: function (event, callback) {
318
323
  var state = this.z_;
319
324
 
320
- if (event === EVENT_FINISH && state.bH_) {
325
+ if (event === EVENT_FINISH && state.bI_) {
321
326
  callback(this.bv_());
322
327
  } else if (event === "last") {
323
328
  this.onLast(callback);
324
329
  } else {
325
- state.bF_.on(event, callback);
330
+ state.bG_.on(event, callback);
326
331
  }
327
332
 
328
333
  return this;
@@ -331,19 +336,19 @@ var proto = AsyncVDOMBuilder.prototype = {
331
336
  once: function (event, callback) {
332
337
  var state = this.z_;
333
338
 
334
- if (event === EVENT_FINISH && state.bH_) {
339
+ if (event === EVENT_FINISH && state.bI_) {
335
340
  callback(this.bv_());
336
341
  } else if (event === "last") {
337
342
  this.onLast(callback);
338
343
  } else {
339
- state.bF_.once(event, callback);
344
+ state.bG_.once(event, callback);
340
345
  }
341
346
 
342
347
  return this;
343
348
  },
344
349
 
345
350
  emit: function (type, arg) {
346
- var events = this.z_.bF_;
351
+ var events = this.z_.bG_;
347
352
  switch (arguments.length) {
348
353
  case 1:
349
354
  events.emit(type);
@@ -359,17 +364,17 @@ var proto = AsyncVDOMBuilder.prototype = {
359
364
  },
360
365
 
361
366
  removeListener: function () {
362
- var events = this.z_.bF_;
367
+ var events = this.z_.bG_;
363
368
  events.removeListener.apply(events, arguments);
364
369
  return this;
365
370
  },
366
371
 
367
372
  sync: function () {
368
- this.bN_ = true;
373
+ this.bO_ = true;
369
374
  },
370
375
 
371
376
  isSync: function () {
372
- return this.bN_;
377
+ return this.bO_;
373
378
  },
374
379
 
375
380
  onLast: function (callback) {
@@ -385,12 +390,12 @@ var proto = AsyncVDOMBuilder.prototype = {
385
390
  },
386
391
 
387
392
  ag_: function (host) {
388
- var node = this.bO_;
393
+ var node = this.bP_;
389
394
  if (!node) {
390
395
  var vdomTree = this.ah_();
391
396
 
392
397
  if (!host) host = this.B_;
393
- this.bO_ = node = vdomTree.bo_(host, null);
398
+ this.bP_ = node = vdomTree.bo_(host, null);
394
399
  morphdom(node, vdomTree, host, this.b_);
395
400
  }
396
401
  return node;
@@ -0,0 +1,24 @@
1
+ "use strict";var VNode = require("./VNode");
2
+ var inherit = require("raptor-util/inherit");
3
+
4
+ function VComment(value, ownerComponent) {
5
+ this.bY_(-1 /* no children */, ownerComponent);
6
+ this.bZ_ = value;
7
+ }
8
+
9
+ VComment.prototype = {
10
+ c__: 8,
11
+
12
+ bo_: function (doc) {
13
+ var nodeValue = this.bZ_;
14
+ return doc.createComment(nodeValue);
15
+ },
16
+
17
+ bS_: function () {
18
+ return new VComment(this.bZ_);
19
+ }
20
+ };
21
+
22
+ inherit(VComment, VNode);
23
+
24
+ module.exports = VComment;
@@ -2,14 +2,14 @@
2
2
  var VNode = require("./VNode");
3
3
 
4
4
  function VComponent(component, key, ownerComponent, preserve) {
5
- this.bX_(null /* childCount */, ownerComponent);
6
- this.bY_ = key;
5
+ this.bY_(null /* childCount */, ownerComponent);
6
+ this.ca_ = key;
7
7
  this.s_ = component;
8
8
  this.ad_ = preserve;
9
9
  }
10
10
 
11
11
  VComponent.prototype = {
12
- bZ_: 2
12
+ c__: 2
13
13
  };
14
14
 
15
15
  inherit(VComponent, VNode);
@@ -4,21 +4,21 @@ var VNode = require("./VNode");
4
4
 
5
5
  function VDocumentFragmentClone(other) {
6
6
  extend(this, other);
7
- this.c__ = null;
8
- this.ca_ = null;
7
+ this.cb_ = null;
8
+ this.cc_ = null;
9
9
  }
10
10
 
11
11
  function VDocumentFragment(out) {
12
- this.bX_(null /* childCount */);
12
+ this.bY_(null /* childCount */);
13
13
  this.r_ = out;
14
14
  }
15
15
 
16
16
  VDocumentFragment.prototype = {
17
- bZ_: 11,
17
+ c__: 11,
18
18
 
19
- cb_: true,
19
+ cd_: true,
20
20
 
21
- bR_: function () {
21
+ bS_: function () {
22
22
  return new VDocumentFragmentClone(this);
23
23
  },
24
24
 
@@ -80,17 +80,17 @@ function assign(a, b) {
80
80
  }
81
81
 
82
82
  function VElementClone(other) {
83
- this.cc_ = other.cc_;
84
- this.c__ = null;
85
- this.ca_ = null;
86
-
87
- this.bY_ = other.bY_;
88
- this.cd_ = other.cd_;
89
- this._O_ = other._O_;
90
83
  this.ce_ = other.ce_;
91
- this.u_ = other.u_;
84
+ this.cb_ = null;
85
+ this.cc_ = null;
86
+
87
+ this.ca_ = other.ca_;
92
88
  this.cf_ = other.cf_;
89
+ this._O_ = other._O_;
93
90
  this.cg_ = other.cg_;
91
+ this.u_ = other.u_;
92
+ this.ch_ = other.ch_;
93
+ this.ci_ = other.ci_;
94
94
  }
95
95
 
96
96
  function VElement(
@@ -102,7 +102,7 @@ childCount,
102
102
  flags,
103
103
  props)
104
104
  {
105
- this.bX_(childCount, ownerComponent);
105
+ this.bY_(childCount, ownerComponent);
106
106
 
107
107
  var constId;
108
108
 
@@ -110,21 +110,21 @@ props)
110
110
  constId = props.i;
111
111
  }
112
112
 
113
- this.bY_ = key;
113
+ this.ca_ = key;
114
114
  this.u_ = flags || 0;
115
- this.cd_ = attrs || EMPTY_OBJECT;
115
+ this.cf_ = attrs || EMPTY_OBJECT;
116
116
  this._O_ = props || EMPTY_OBJECT;
117
- this.ce_ = tagName;
118
- this.cf_ = "";
119
- this.cg_ = constId;
117
+ this.cg_ = tagName;
118
+ this.ch_ = "";
119
+ this.ci_ = constId;
120
120
  this.ad_ = false;
121
121
  this.ac_ = false;
122
122
  }
123
123
 
124
124
  VElement.prototype = {
125
- bZ_: 1,
125
+ c__: 1,
126
126
 
127
- bR_: function () {
127
+ bS_: function () {
128
128
  return new VElementClone(this);
129
129
  },
130
130
 
@@ -136,7 +136,7 @@ VElement.prototype = {
136
136
  * @param {int|null} childCount The number of child nodes (or `null` if not known)
137
137
  */
138
138
  e: function (tagName, attrs, key, ownerComponent, childCount, flags, props) {
139
- var child = this.bQ_(
139
+ var child = this.bR_(
140
140
  new VElement(
141
141
  tagName,
142
142
  attrs,
@@ -149,7 +149,7 @@ VElement.prototype = {
149
149
  );
150
150
 
151
151
  if (childCount === 0) {
152
- return this.ch_();
152
+ return this.cj_();
153
153
  } else {
154
154
  return child;
155
155
  }
@@ -162,15 +162,15 @@ VElement.prototype = {
162
162
  * @param {String} value The value for the new Comment node
163
163
  */
164
164
  n: function (node, ownerComponent) {
165
- node = node.bR_();
165
+ node = node.bS_();
166
166
  node._M_ = ownerComponent;
167
- this.bQ_(node);
168
- return this.ch_();
167
+ this.bR_(node);
168
+ return this.cj_();
169
169
  },
170
170
 
171
171
  bo_: function (host, parentNamespaceURI) {
172
- var tagName = this.ce_;
173
- var attributes = this.cd_;
172
+ var tagName = this.cg_;
173
+ var attributes = this.cf_;
174
174
  var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML;
175
175
 
176
176
  var flags = this.u_;
@@ -195,7 +195,7 @@ VElement.prototype = {
195
195
  }
196
196
 
197
197
  if (tagName === "textarea") {
198
- el.defaultValue = this.cf_;
198
+ el.defaultValue = this.ch_;
199
199
  }
200
200
  }
201
201
 
@@ -249,8 +249,8 @@ function virtualizeElement(node, virtualizeChildNodes, ownerComponent) {
249
249
  props
250
250
  );
251
251
 
252
- if (vdomEl.ce_ === "textarea") {
253
- vdomEl.cf_ = node.value;
252
+ if (vdomEl.cg_ === "textarea") {
253
+ vdomEl.ch_ = node.value;
254
254
  } else if (virtualizeChildNodes) {
255
255
  virtualizeChildNodes(node, vdomEl, ownerComponent);
256
256
  }
@@ -258,12 +258,12 @@ function virtualizeElement(node, virtualizeChildNodes, ownerComponent) {
258
258
  return vdomEl;
259
259
  }
260
260
 
261
- VElement.ci_ = virtualizeElement;
261
+ VElement.ck_ = virtualizeElement;
262
262
 
263
- VElement.cj_ = function (fromEl, vFromEl, toEl) {
263
+ VElement.cl_ = function (fromEl, vFromEl, toEl) {
264
264
  var fromFlags = vFromEl.u_;
265
265
  var toFlags = toEl.u_;
266
- var attrs = toEl.cd_;
266
+ var attrs = toEl.cf_;
267
267
 
268
268
  if (toFlags & FLAG_CUSTOM_ELEMENT) {
269
269
  return assign(fromEl, attrs);
@@ -280,7 +280,7 @@ VElement.cj_ = function (fromEl, vFromEl, toEl) {
280
280
  // real VElement node will not have the expando property
281
281
  // so we build the attribute map from the expando property
282
282
 
283
- var oldAttrs = vFromEl.cd_;
283
+ var oldAttrs = vFromEl.cf_;
284
284
 
285
285
  if (oldAttrs === attrs) {
286
286
  // For constant attributes the same object will be provided
@@ -318,7 +318,7 @@ VElement.cj_ = function (fromEl, vFromEl, toEl) {
318
318
  }
319
319
 
320
320
  var preserve = props && props.pa || EMPTY_OBJECT;
321
- var specialAttrs = specialElHandlers[toEl.ce_] || EMPTY_OBJECT;
321
+ var specialAttrs = specialElHandlers[toEl.cg_] || EMPTY_OBJECT;
322
322
  var specialAttr;
323
323
 
324
324
  // Loop over all of the attributes in the attribute map and compare
@@ -356,7 +356,7 @@ VElement.cj_ = function (fromEl, vFromEl, toEl) {
356
356
  // was not a virtualized node (i.e., a node that was not rendered by a
357
357
  // Marko template, but rather a node that was created from an HTML
358
358
  // string or a real DOM node).
359
- if (toEl.bY_ === null || fromFlags & FLAG_SPREAD_ATTRS) {
359
+ if (toEl.ca_ === null || fromFlags & FLAG_SPREAD_ATTRS) {
360
360
  for (attrName in oldAttrs) {
361
361
  if (!(attrName in attrs)) {
362
362
  if (specialAttr = specialAttrs[attrName]) {
@@ -6,16 +6,16 @@ var createFragmentNode = require("./morphdom/fragment")._k_;
6
6
  var VNode = require("./VNode");
7
7
 
8
8
  function VFragment(key, ownerComponent, preserve) {
9
- this.bX_(null /* childCount */, ownerComponent);
10
- this.bY_ = key;
9
+ this.bY_(null /* childCount */, ownerComponent);
10
+ this.ca_ = key;
11
11
  this.ad_ = preserve;
12
12
  }
13
13
 
14
14
  VFragment.prototype = {
15
- bZ_: 12,
15
+ c__: 12,
16
16
  bo_: function () {
17
17
  var fragment = createFragmentNode();
18
- keysByDOMNode.set(fragment, this.bY_);
18
+ keysByDOMNode.set(fragment, this.ca_);
19
19
  vElementByDOMNode.set(fragment, this);
20
20
  return fragment;
21
21
  }
@@ -1,78 +1,78 @@
1
1
  "use strict";function VNode() {}
2
2
 
3
3
  VNode.prototype = {
4
- bX_: function (finalChildCount, ownerComponent) {
5
- this.ck_ = finalChildCount;
6
- this.cl_ = 0;
4
+ bY_: function (finalChildCount, ownerComponent) {
5
+ this.cm_ = finalChildCount;
6
+ this.cn_ = 0;
7
+ this.ce_ = null;
8
+ this.co_ = null;
9
+ this.cb_ = null;
7
10
  this.cc_ = null;
8
- this.cm_ = null;
9
- this.c__ = null;
10
- this.ca_ = null;
11
11
  this._M_ = ownerComponent;
12
12
  },
13
13
 
14
14
  get aA_() {
15
- var firstChild = this.cc_;
15
+ var firstChild = this.ce_;
16
16
 
17
- if (firstChild && firstChild.cb_) {
17
+ if (firstChild && firstChild.cd_) {
18
18
  var nestedFirstChild = firstChild.aA_;
19
19
  // The first child is a DocumentFragment node.
20
20
  // If the DocumentFragment node has a first child then we will return that.
21
21
  // Otherwise, the DocumentFragment node is not *really* the first child and
22
22
  // we need to skip to its next sibling
23
- return nestedFirstChild || firstChild.cn_;
23
+ return nestedFirstChild || firstChild.cp_;
24
24
  }
25
25
 
26
26
  return firstChild;
27
27
  },
28
28
 
29
- get cn_() {
30
- var nextSibling = this.ca_;
29
+ get cp_() {
30
+ var nextSibling = this.cc_;
31
31
 
32
32
  if (nextSibling) {
33
- if (nextSibling.cb_) {
33
+ if (nextSibling.cd_) {
34
34
  var firstChild = nextSibling.aA_;
35
- return firstChild || nextSibling.cn_;
35
+ return firstChild || nextSibling.cp_;
36
36
  }
37
37
  } else {
38
- var parentNode = this.c__;
39
- if (parentNode && parentNode.cb_) {
40
- return parentNode.cn_;
38
+ var parentNode = this.cb_;
39
+ if (parentNode && parentNode.cd_) {
40
+ return parentNode.cp_;
41
41
  }
42
42
  }
43
43
 
44
44
  return nextSibling;
45
45
  },
46
46
 
47
- bQ_: function (child) {
48
- this.cl_++;
47
+ bR_: function (child) {
48
+ this.cn_++;
49
49
 
50
- if (this.ce_ === "textarea") {
51
- if (child.co_) {
52
- this.cf_ += child.cp_;
50
+ if (this.cg_ === "textarea") {
51
+ if (child.cq_) {
52
+ this.ch_ += child.bZ_;
53
53
  } else {
54
54
  throw TypeError();
55
55
  }
56
56
  } else {
57
- var lastChild = this.cm_;
57
+ var lastChild = this.co_;
58
58
 
59
- child.c__ = this;
59
+ child.cb_ = this;
60
60
 
61
61
  if (lastChild) {
62
- lastChild.ca_ = child;
62
+ lastChild.cc_ = child;
63
63
  } else {
64
- this.cc_ = child;
64
+ this.ce_ = child;
65
65
  }
66
66
 
67
- this.cm_ = child;
67
+ this.co_ = child;
68
68
  }
69
69
 
70
70
  return child;
71
71
  },
72
72
 
73
- ch_: function finishChild() {
74
- if (this.cl_ === this.ck_ && this.c__) {
75
- return this.c__.ch_();
73
+ cj_: function finishChild() {
74
+ if (this.cn_ === this.cm_ && this.cb_) {
75
+ return this.cb_.cj_();
76
76
  } else {
77
77
  return this;
78
78
  }
@@ -2,21 +2,21 @@
2
2
  var VNode = require("./VNode");
3
3
 
4
4
  function VText(value, ownerComponent) {
5
- this.bX_(-1 /* no children */, ownerComponent);
6
- this.cp_ = value;
5
+ this.bY_(-1 /* no children */, ownerComponent);
6
+ this.bZ_ = value;
7
7
  }
8
8
 
9
9
  VText.prototype = {
10
- co_: true,
10
+ cq_: true,
11
11
 
12
- bZ_: 3,
12
+ c__: 3,
13
13
 
14
14
  bo_: function (host) {
15
- return (host.ownerDocument || host).createTextNode(this.cp_);
15
+ return (host.ownerDocument || host).createTextNode(this.bZ_);
16
16
  },
17
17
 
18
- bR_: function () {
19
- return new VText(this.cp_);
18
+ bS_: function () {
19
+ return new VText(this.bZ_);
20
20
  }
21
21
  };
22
22
 
@@ -13,12 +13,12 @@ function ConstVElement(tagName, attrs, childCount) {
13
13
 
14
14
  ConstVElement.prototype = Object.create(VElement.prototype);
15
15
  ConstVElement.prototype.e = function (tagName, attrs, childCount) {
16
- var child = this.bQ_(
16
+ var child = this.bR_(
17
17
  new ConstVElement(tagName, attrs, childCount)
18
18
  );
19
19
 
20
20
  if (childCount === 0) {
21
- return this.ch_();
21
+ return this.cj_();
22
22
  } else {
23
23
  return child;
24
24
  }
@@ -44,7 +44,7 @@ exports.t = runtime.t = function (typeName) {
44
44
  instance.Q_(input, out);
45
45
  };
46
46
 
47
- instance.cq_ = true;
47
+ instance.cr_ = true;
48
48
  instance.ao_();
49
49
  instance._x_ = false;
50
50
 
@@ -78,7 +78,7 @@ registry._G_ = function (typeName, id) {
78
78
  if (instances) {
79
79
  instances.add(instance);
80
80
  instance.once("destroy", function () {
81
- if (!instance.cq_) {
81
+ if (!instance.cr_) {
82
82
  instances.delete(instance);
83
83
  }
84
84
  });
@@ -80,8 +80,8 @@ function createFragmentNode(startNode, nextNode, parentNode) {
80
80
 
81
81
  function beginFragmentNode(startNode, parentNode) {
82
82
  var fragment = createFragmentNode(startNode, null, parentNode);
83
- fragment.cr_ = function (nextNode) {
84
- fragment.cr_ = null;
83
+ fragment.cs_ = function (nextNode) {
84
+ fragment.cs_ = null;
85
85
  insertBefore(
86
86
  fragment.endNode,
87
87
  nextNode,
@@ -92,4 +92,4 @@ function beginFragmentNode(startNode, parentNode) {
92
92
  }
93
93
 
94
94
  exports._k_ = createFragmentNode;
95
- exports.cs_ = beginFragmentNode;
95
+ exports.ct_ = beginFragmentNode;
@@ -37,6 +37,6 @@ function removeChild(node) {
37
37
 
38
38
  exports.bf_ = insertBefore;
39
39
  exports.bg_ = insertAfter;
40
- exports.cn_ = nextSibling;
40
+ exports.cp_ = nextSibling;
41
41
  exports.aA_ = firstChild;
42
42
  exports.bh_ = removeChild;
@@ -11,8 +11,8 @@ var KeySequence = require("../../components/KeySequence");
11
11
  var VElement = require("../vdom").bz_;
12
12
  var fragment = require("./fragment");
13
13
  var helpers = require("./helpers");
14
- var virtualizeElement = VElement.ci_;
15
- var morphAttrs = VElement.cj_;
14
+ var virtualizeElement = VElement.ck_;
15
+ var morphAttrs = VElement.cl_;
16
16
  var keysByDOMNode = domData._n_;
17
17
  var componentByDOMNode = domData._p_;
18
18
  var vElementByDOMNode = domData._K_;
@@ -20,11 +20,11 @@ var detachedByDOMNode = domData.aW_;
20
20
 
21
21
  var insertBefore = helpers.bf_;
22
22
  var insertAfter = helpers.bg_;
23
- var nextSibling = helpers.cn_;
23
+ var nextSibling = helpers.cp_;
24
24
  var firstChild = helpers.aA_;
25
25
  var removeChild = helpers.bh_;
26
26
  var createFragmentNode = fragment._k_;
27
- var beginFragmentNode = fragment.cs_;
27
+ var beginFragmentNode = fragment.ct_;
28
28
 
29
29
  var ELEMENT_NODE = 1;
30
30
  var TEXT_NODE = 3;
@@ -42,7 +42,7 @@ function isAutoKey(key) {
42
42
  }
43
43
 
44
44
  function compareNodeNames(fromEl, toEl) {
45
- return fromEl.ce_ === toEl.ce_;
45
+ return fromEl.cg_ === toEl.cg_;
46
46
  }
47
47
 
48
48
  function caseInsensitiveCompare(a, b) {
@@ -77,8 +77,8 @@ function morphdom(fromNode, toNode, host, componentsContext) {
77
77
  insertBefore(realNode, referenceEl, parentEl);
78
78
 
79
79
  if (
80
- vNode.bZ_ === ELEMENT_NODE ||
81
- vNode.bZ_ === FRAGMENT_NODE)
80
+ vNode.c__ === ELEMENT_NODE ||
81
+ vNode.c__ === FRAGMENT_NODE)
82
82
  {
83
83
  if (key) {
84
84
  keysByDOMNode.set(realNode, key);
@@ -87,7 +87,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
87
87
  realNode;
88
88
  }
89
89
 
90
- if (vNode.ce_ !== "textarea") {
90
+ if (vNode.cg_ !== "textarea") {
91
91
  morphChildren(realNode, vNode, parentComponent);
92
92
  }
93
93
 
@@ -161,9 +161,9 @@ function morphdom(fromNode, toNode, host, componentsContext) {
161
161
  var fromComponent;
162
162
 
163
163
  outer: while (curToNodeChild) {
164
- toNextSibling = curToNodeChild.cn_;
165
- curToNodeType = curToNodeChild.bZ_;
166
- curToNodeKey = curToNodeChild.bY_;
164
+ toNextSibling = curToNodeChild.cp_;
165
+ curToNodeType = curToNodeChild.c__;
166
+ curToNodeKey = curToNodeChild.ca_;
167
167
 
168
168
  // Skip <!doctype>
169
169
  if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) {
@@ -282,7 +282,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
282
282
 
283
283
  if (
284
284
  curVFromNodeChild &&
285
- curToNodeType === curVFromNodeChild.bZ_ && (
285
+ curToNodeType === curVFromNodeChild.c__ && (
286
286
  curToNodeType !== ELEMENT_NODE ||
287
287
  compareNodeNames(curToNodeChild, curVFromNodeChild)))
288
288
  {
@@ -327,11 +327,11 @@ function morphdom(fromNode, toNode, host, componentsContext) {
327
327
  curToNodeChild.ad_ ||
328
328
  caseInsensitiveCompare(
329
329
  curFromNodeChild.nodeName,
330
- curToNodeChild.ce_ || ""
330
+ curToNodeChild.cg_ || ""
331
331
  )))
332
332
  {
333
333
  curVFromNodeChild = virtualizeElement(curFromNodeChild);
334
- curVFromNodeChild.ce_ = curToNodeChild.ce_;
334
+ curVFromNodeChild.cg_ = curToNodeChild.cg_;
335
335
  keysByDOMNode.set(curFromNodeChild, curToNodeKey);
336
336
  referenceComponent.K_[curToNodeKey] =
337
337
  curFromNodeChild;
@@ -351,7 +351,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
351
351
  curFromNodeChild = fromNextSibling;
352
352
  continue;
353
353
  } else if (
354
- curToNodeChild.bZ_ === FRAGMENT_NODE &&
354
+ curToNodeChild.c__ === FRAGMENT_NODE &&
355
355
  curFromNodeChild.nodeType === COMMENT_NODE)
356
356
  {
357
357
  var content = curFromNodeChild.nodeValue;
@@ -417,7 +417,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
417
417
 
418
418
  if (
419
419
  curVFromNodeChild &&
420
- curToNodeType === curVFromNodeChild.bZ_ && (
420
+ curToNodeType === curVFromNodeChild.c__ && (
421
421
  curToNodeType !== ELEMENT_NODE ||
422
422
  compareNodeNames(curVFromNodeChild, curToNodeChild)))
423
423
  {
@@ -435,7 +435,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
435
435
 
436
436
  if (
437
437
  toNextSibling &&
438
- toNextSibling.bY_ === curFromNodeKey)
438
+ toNextSibling.ca_ === curFromNodeKey)
439
439
  {
440
440
  // Single element swap
441
441
 
@@ -548,18 +548,18 @@ function morphdom(fromNode, toNode, host, componentsContext) {
548
548
 
549
549
  if (
550
550
  caseInsensitiveCompare(
551
- curVFromNodeChild.ce_,
552
- curToNodeChild.ce_
551
+ curVFromNodeChild.cg_,
552
+ curToNodeChild.cg_
553
553
  ))
554
554
  {
555
- curVFromNodeChild.ce_ = curToNodeChild.ce_;
555
+ curVFromNodeChild.cg_ = curToNodeChild.cg_;
556
556
  }
557
557
  } else {
558
558
  // Skip over nodes that don't look like ours...
559
559
  curFromNodeChild = fromNextSibling;
560
560
  continue;
561
561
  }
562
- } else if (curFromNodeKey = curVFromNodeChild.bY_) {
562
+ } else if (curFromNodeKey = curVFromNodeChild.ca_) {
563
563
  // We have a keyed element here but our target VDOM node
564
564
  // is not keyed so this not doesn't belong
565
565
  isCompatible = false;
@@ -586,18 +586,18 @@ function morphdom(fromNode, toNode, host, componentsContext) {
586
586
  {
587
587
  // Both nodes being compared are Text or Comment nodes
588
588
  isCompatible = true;
589
- var curToNodeValue = curToNodeChild.cp_;
589
+ var curToNodeValue = curToNodeChild.bZ_;
590
590
  var curFromNodeValue = curFromNodeChild.nodeValue;
591
591
  if (curFromNodeValue !== curToNodeValue) {
592
592
  if (
593
593
  isHydrate &&
594
594
  toNextSibling &&
595
595
  curFromNodeType === TEXT_NODE &&
596
- toNextSibling.bZ_ === TEXT_NODE &&
596
+ toNextSibling.c__ === TEXT_NODE &&
597
597
  curFromNodeValue.startsWith(curToNodeValue) &&
598
598
  curFromNodeValue.
599
599
  slice(curToNodeValue.length).
600
- startsWith(toNextSibling.cp_))
600
+ startsWith(toNextSibling.bZ_))
601
601
  {
602
602
  // In hydrate mode we can use splitText to more efficiently handle
603
603
  // adjacent text vdom nodes that were merged.
@@ -642,10 +642,10 @@ function morphdom(fromNode, toNode, host, componentsContext) {
642
642
  }
643
643
 
644
644
  // We have processed all of the "to nodes".
645
- if (fromNode.cr_) {
645
+ if (fromNode.cs_) {
646
646
  // If we are in an unfinished fragment, we have reached the end of the nodes
647
647
  // we were matching up and need to end the fragment
648
- fromNode.cr_(curFromNodeChild);
648
+ fromNode.cs_(curFromNodeChild);
649
649
  } else {
650
650
  // If curFromNodeChild is non-null then we still have some from nodes
651
651
  // left over that need to be removed
@@ -685,11 +685,11 @@ function morphdom(fromNode, toNode, host, componentsContext) {
685
685
  }
686
686
 
687
687
  function morphEl(fromEl, vFromEl, toEl, parentComponent) {
688
- var nodeName = toEl.ce_;
689
- var constId = toEl.cg_;
688
+ var nodeName = toEl.cg_;
689
+ var constId = toEl.ci_;
690
690
  vElementByDOMNode.set(fromEl, toEl);
691
691
 
692
- if (constId !== undefined && vFromEl.cg_ === constId) {
692
+ if (constId !== undefined && vFromEl.ci_ === constId) {
693
693
  return;
694
694
  }
695
695
 
@@ -700,8 +700,8 @@ function morphdom(fromNode, toNode, host, componentsContext) {
700
700
  }
701
701
 
702
702
  if (nodeName === "textarea") {
703
- if (toEl.cf_ !== vFromEl.cf_) {
704
- fromEl.value = toEl.cf_;
703
+ if (toEl.ch_ !== vFromEl.ch_) {
704
+ fromEl.value = toEl.ch_;
705
705
  }
706
706
  } else {
707
707
  morphChildren(fromEl, toEl, parentComponent);
@@ -1,4 +1,5 @@
1
1
  "use strict";var parseHTML = require("./parse-html");
2
+ var VComment = require("./VComment");
2
3
  var VComponent = require("./VComponent");
3
4
  var VDocumentFragment = require("./VDocumentFragment");
4
5
  var VElement = require("./VElement");
@@ -11,7 +12,7 @@ var specialHtmlRegexp = /[&<]/;
11
12
  function virtualizeChildNodes(node, vdomParent, ownerComponent) {
12
13
  var curChild = node.firstChild;
13
14
  while (curChild) {
14
- vdomParent.bQ_(virtualize(curChild, ownerComponent));
15
+ vdomParent.bR_(virtualize(curChild, ownerComponent));
15
16
  curChild = curChild.nextSibling;
16
17
  }
17
18
  }
@@ -19,9 +20,11 @@ function virtualizeChildNodes(node, vdomParent, ownerComponent) {
19
20
  function virtualize(node, ownerComponent) {
20
21
  switch (node.nodeType) {
21
22
  case 1:
22
- return VElement.ci_(node, virtualizeChildNodes, ownerComponent);
23
+ return VElement.ck_(node, virtualizeChildNodes, ownerComponent);
23
24
  case 3:
24
25
  return new VText(node.nodeValue, ownerComponent);
26
+ case 8:
27
+ return new VComment(node.nodeValue, ownerComponent);
25
28
  case 11:
26
29
  var vdomDocFragment = new VDocumentFragment();
27
30
  virtualizeChildNodes(node, vdomDocFragment, ownerComponent);
@@ -36,9 +39,11 @@ function virtualizeHTML(html, ownerComponent) {
36
39
 
37
40
  var vdomFragment = new VDocumentFragment();
38
41
  var curChild = parseHTML(html);
42
+ var virtualized;
39
43
 
40
44
  while (curChild) {
41
- vdomFragment.bQ_(virtualize(curChild, ownerComponent));
45
+ virtualized = virtualize(curChild, ownerComponent);
46
+ if (virtualized) vdomFragment.bR_(virtualized);
42
47
  curChild = curChild.nextSibling;
43
48
  }
44
49
 
@@ -65,18 +70,19 @@ Node_prototype.t = function (value) {
65
70
  }
66
71
  }
67
72
 
68
- this.bQ_(vdomNode || new VText(value.toString()));
69
- return this.ch_();
73
+ this.bR_(vdomNode || new VText(value.toString()));
74
+ return this.cj_();
70
75
  };
71
76
 
72
- Node_prototype.bV_ = function () {
73
- return this.bQ_(new VDocumentFragment());
77
+ Node_prototype.bW_ = function () {
78
+ return this.bR_(new VDocumentFragment());
74
79
  };
75
80
 
76
- exports.bA_ = VDocumentFragment;
81
+ exports.bA_ = VComment;
82
+ exports.bB_ = VDocumentFragment;
77
83
  exports.bz_ = VElement;
78
- exports.bB_ = VText;
79
- exports.bC_ = VComponent;
80
- exports.bD_ = VFragment;
81
- exports.ci_ = virtualize;
82
- exports.bE_ = virtualizeHTML;
84
+ exports.bC_ = VText;
85
+ exports.bD_ = VComponent;
86
+ exports.bE_ = VFragment;
87
+ exports.ck_ = virtualize;
88
+ exports.bF_ = virtualizeHTML;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "marko",
3
- "version": "5.35.14",
3
+ "version": "5.35.16",
4
4
  "description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
5
5
  "keywords": [
6
6
  "front-end",
@@ -65,8 +65,8 @@
65
65
  "build": "babel ./src --out-dir ./dist --extensions .js --copy-files --config-file ../../babel.config.js --env-name=production"
66
66
  },
67
67
  "dependencies": {
68
- "@marko/compiler": "^5.37.9",
69
- "@marko/translator-default": "^6.0.11",
68
+ "@marko/compiler": "^5.37.11",
69
+ "@marko/translator-default": "^6.0.13",
70
70
  "app-module-path": "^2.2.0",
71
71
  "argly": "^1.2.0",
72
72
  "browser-refresh-client": "1.1.4",
@@ -139,7 +139,8 @@ function addComponentsFromContext(componentsContext, componentsToHydrate) {
139
139
 
140
140
  if (typeof renderBody === "function" && renderBody.toJSON === w10ToJSON) {
141
141
  flags |= FLAG_HAS_RENDER_BODY;
142
- renderBody = input.renderBody = undefined;
142
+ renderBody = undefined;
143
+ if (input) input.renderBody = undefined;
143
144
  }
144
145
 
145
146
  var extra = {
@@ -4,6 +4,7 @@ var attrsHelper = require("./helpers/attrs");
4
4
  var morphdom = require("./morphdom");
5
5
  var vdom = require("./vdom");
6
6
  var VElement = vdom.___VElement;
7
+ var VComment = vdom.___VComment;
7
8
  var VDocumentFragment = vdom.___VDocumentFragment;
8
9
  var VText = vdom.___VText;
9
10
  var VComponent = vdom.___VComponent;
@@ -133,6 +134,10 @@ var proto = (AsyncVDOMBuilder.prototype = {
133
134
  return this;
134
135
  },
135
136
 
137
+ comment: function (comment, ownerComponent) {
138
+ return this.node(new VComment(comment, ownerComponent));
139
+ },
140
+
136
141
  html: function (html, ownerComponent) {
137
142
  if (html != null) {
138
143
  var vdomNode = virtualizeHTML(html, ownerComponent);
@@ -0,0 +1,24 @@
1
+ var VNode = require("./VNode");
2
+ var inherit = require("raptor-util/inherit");
3
+
4
+ function VComment(value, ownerComponent) {
5
+ this.___VNode(-1 /* no children */, ownerComponent);
6
+ this.___nodeValue = value;
7
+ }
8
+
9
+ VComment.prototype = {
10
+ ___nodeType: 8,
11
+
12
+ ___actualize: function (doc) {
13
+ var nodeValue = this.___nodeValue;
14
+ return doc.createComment(nodeValue);
15
+ },
16
+
17
+ ___cloneNode: function () {
18
+ return new VComment(this.___nodeValue);
19
+ },
20
+ };
21
+
22
+ inherit(VComment, VNode);
23
+
24
+ module.exports = VComment;
@@ -1,4 +1,5 @@
1
1
  var parseHTML = require("./parse-html");
2
+ var VComment = require("./VComment");
2
3
  var VComponent = require("./VComponent");
3
4
  var VDocumentFragment = require("./VDocumentFragment");
4
5
  var VElement = require("./VElement");
@@ -22,6 +23,8 @@ function virtualize(node, ownerComponent) {
22
23
  return VElement.___virtualize(node, virtualizeChildNodes, ownerComponent);
23
24
  case 3:
24
25
  return new VText(node.nodeValue, ownerComponent);
26
+ case 8:
27
+ return new VComment(node.nodeValue, ownerComponent);
25
28
  case 11:
26
29
  var vdomDocFragment = new VDocumentFragment();
27
30
  virtualizeChildNodes(node, vdomDocFragment, ownerComponent);
@@ -36,9 +39,11 @@ function virtualizeHTML(html, ownerComponent) {
36
39
 
37
40
  var vdomFragment = new VDocumentFragment();
38
41
  var curChild = parseHTML(html);
42
+ var virtualized;
39
43
 
40
44
  while (curChild) {
41
- vdomFragment.___appendChild(virtualize(curChild, ownerComponent));
45
+ virtualized = virtualize(curChild, ownerComponent);
46
+ if (virtualized) vdomFragment.___appendChild(virtualized);
42
47
  curChild = curChild.nextSibling;
43
48
  }
44
49
 
@@ -73,6 +78,7 @@ Node_prototype.___appendDocumentFragment = function () {
73
78
  return this.___appendChild(new VDocumentFragment());
74
79
  };
75
80
 
81
+ exports.___VComment = VComment;
76
82
  exports.___VDocumentFragment = VDocumentFragment;
77
83
  exports.___VElement = VElement;
78
84
  exports.___VText = VText;