marko 5.35.14 → 5.35.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -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;