marko 6.0.0-next.3.26 → 6.0.0-next.3.28

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.
@@ -87,64 +87,6 @@ function triggerMacroTask() {
87
87
  port2.postMessage(0);
88
88
  }
89
89
 
90
- // src/dom/scope.ts
91
- var pendingScopes = [];
92
- var debugID = 0;
93
- function createScope($global) {
94
- const scope = {
95
- ___pending: 1,
96
- $global
97
- };
98
- if (true) {
99
- scope.___debugId = "client-" + debugID++;
100
- }
101
- pendingScopes.push(scope);
102
- return scope;
103
- }
104
- function finishPendingScopes() {
105
- for (const scope of pendingScopes) {
106
- scope.___pending = 0;
107
- }
108
- pendingScopes = [];
109
- }
110
- var emptyBranch = createScope({});
111
- function getEmptyBranch(marker) {
112
- emptyBranch.___startNode = emptyBranch.___endNode = marker;
113
- return emptyBranch;
114
- }
115
- function destroyBranch(branch) {
116
- branch.___parentBranch?.___branchScopes?.delete(branch);
117
- destroyNestedBranches(branch);
118
- }
119
- function destroyNestedBranches(branch) {
120
- branch.___destroyed = 1;
121
- branch.___branchScopes?.forEach(destroyNestedBranches);
122
- branch.___abortScopes?.forEach((scope) => {
123
- for (const id in scope.___abortControllers) {
124
- scope.___abortControllers[id]?.abort();
125
- }
126
- });
127
- }
128
- function removeAndDestroyBranch(branch) {
129
- destroyBranch(branch);
130
- let current = branch.___startNode;
131
- const stop = branch.___endNode.nextSibling;
132
- while (current !== stop) {
133
- const next = current.nextSibling;
134
- current.remove();
135
- current = next;
136
- }
137
- }
138
- function insertBranchBefore(branch, parent, nextSibling) {
139
- let current = branch.___startNode;
140
- const stop = branch.___endNode.nextSibling;
141
- while (current !== stop) {
142
- const next = current.nextSibling;
143
- parent.insertBefore(current, nextSibling);
144
- current = next;
145
- }
146
- }
147
-
148
90
  // src/common/helpers.ts
149
91
  function classValue(value2) {
150
92
  return toDelimitedString(value2, " ", stringifyClassObject);
@@ -200,173 +142,6 @@ function normalizeDynamicRenderer(value2) {
200
142
  if (value2) return value2.content || value2.default || value2;
201
143
  }
202
144
 
203
- // src/dom/reconcile.ts
204
- var WRONG_POS = 2147483647;
205
- function reconcile(parent, oldBranches, newBranches, afterReference) {
206
- let oldStart = 0;
207
- let newStart = 0;
208
- let oldEnd = oldBranches.length - 1;
209
- let newEnd = newBranches.length - 1;
210
- let oldStartBranch = oldBranches[oldStart];
211
- let newStartBranch = newBranches[newStart];
212
- let oldEndBranch = oldBranches[oldEnd];
213
- let newEndBranch = newBranches[newEnd];
214
- let i;
215
- let j;
216
- let k;
217
- let nextSibling;
218
- let oldBranch;
219
- let newBranch;
220
- outer: {
221
- while (oldStartBranch === newStartBranch) {
222
- ++oldStart;
223
- ++newStart;
224
- if (oldStart > oldEnd || newStart > newEnd) {
225
- break outer;
226
- }
227
- oldStartBranch = oldBranches[oldStart];
228
- newStartBranch = newBranches[newStart];
229
- }
230
- while (oldEndBranch === newEndBranch) {
231
- --oldEnd;
232
- --newEnd;
233
- if (oldStart > oldEnd || newStart > newEnd) {
234
- break outer;
235
- }
236
- oldEndBranch = oldBranches[oldEnd];
237
- newEndBranch = newBranches[newEnd];
238
- }
239
- }
240
- if (oldStart > oldEnd) {
241
- if (newStart <= newEnd) {
242
- k = newEnd + 1;
243
- nextSibling = k < newBranches.length ? newBranches[k].___startNode : afterReference;
244
- do {
245
- insertBranchBefore(newBranches[newStart++], parent, nextSibling);
246
- } while (newStart <= newEnd);
247
- }
248
- } else if (newStart > newEnd) {
249
- do {
250
- removeAndDestroyBranch(oldBranches[oldStart++]);
251
- } while (oldStart <= oldEnd);
252
- } else {
253
- const oldLength = oldEnd - oldStart + 1;
254
- const newLength = newEnd - newStart + 1;
255
- const aNullable = oldBranches;
256
- const sources = new Array(newLength);
257
- for (i = 0; i < newLength; ++i) {
258
- sources[i] = -1;
259
- }
260
- let pos = 0;
261
- let synced = 0;
262
- const keyIndex = /* @__PURE__ */ new Map();
263
- for (j = newStart; j <= newEnd; ++j) {
264
- keyIndex.set(newBranches[j], j);
265
- }
266
- for (i = oldStart; i <= oldEnd && synced < newLength; ++i) {
267
- oldBranch = oldBranches[i];
268
- j = keyIndex.get(oldBranch);
269
- if (j !== void 0) {
270
- pos = pos > j ? WRONG_POS : j;
271
- ++synced;
272
- newBranch = newBranches[j];
273
- sources[j - newStart] = i;
274
- aNullable[i] = null;
275
- }
276
- }
277
- if (oldLength === oldBranches.length && synced === 0) {
278
- for (; newStart < newLength; ++newStart) {
279
- insertBranchBefore(newBranches[newStart], parent, afterReference);
280
- }
281
- for (; oldStart < oldLength; ++oldStart) {
282
- removeAndDestroyBranch(oldBranches[oldStart]);
283
- }
284
- } else {
285
- i = oldLength - synced;
286
- while (i > 0) {
287
- oldBranch = aNullable[oldStart++];
288
- if (oldBranch !== null) {
289
- removeAndDestroyBranch(oldBranch);
290
- i--;
291
- }
292
- }
293
- if (pos === WRONG_POS) {
294
- const seq = longestIncreasingSubsequence(sources);
295
- j = seq.length - 1;
296
- k = newBranches.length;
297
- for (i = newLength - 1; i >= 0; --i) {
298
- if (sources[i] === -1) {
299
- pos = i + newStart;
300
- newBranch = newBranches[pos++];
301
- nextSibling = pos < k ? newBranches[pos].___startNode : afterReference;
302
- insertBranchBefore(newBranch, parent, nextSibling);
303
- } else {
304
- if (j < 0 || i !== seq[j]) {
305
- pos = i + newStart;
306
- newBranch = newBranches[pos++];
307
- nextSibling = pos < k ? newBranches[pos].___startNode : afterReference;
308
- insertBranchBefore(newBranch, parent, nextSibling);
309
- } else {
310
- --j;
311
- }
312
- }
313
- }
314
- } else if (synced !== newLength) {
315
- k = newBranches.length;
316
- for (i = newLength - 1; i >= 0; --i) {
317
- if (sources[i] === -1) {
318
- pos = i + newStart;
319
- newBranch = newBranches[pos++];
320
- nextSibling = pos < k ? newBranches[pos].___startNode : afterReference;
321
- insertBranchBefore(newBranch, parent, nextSibling);
322
- }
323
- }
324
- }
325
- }
326
- }
327
- }
328
- function longestIncreasingSubsequence(a) {
329
- const p = a.slice();
330
- const result = [];
331
- result.push(0);
332
- let u;
333
- let v;
334
- for (let i = 0, il = a.length; i < il; ++i) {
335
- if (a[i] === -1) {
336
- continue;
337
- }
338
- const j = result[result.length - 1];
339
- if (a[j] < a[i]) {
340
- p[i] = j;
341
- result.push(i);
342
- continue;
343
- }
344
- u = 0;
345
- v = result.length - 1;
346
- while (u < v) {
347
- const c = (u + v) / 2 | 0;
348
- if (a[result[c]] < a[i]) {
349
- u = c + 1;
350
- } else {
351
- v = c;
352
- }
353
- }
354
- if (a[i] < a[result[u]]) {
355
- if (u > 0) {
356
- p[i] = result[u - 1];
357
- }
358
- result[u] = i;
359
- }
360
- }
361
- u = result.length;
362
- v = result[u - 1];
363
- while (u-- > 0) {
364
- result[u] = v;
365
- v = p[v];
366
- }
367
- return result;
368
- }
369
-
370
145
  // src/dom/event.ts
371
146
  var elementHandlersByEvent = /* @__PURE__ */ new Map();
372
147
  var defaultDelegator = createDelegator();
@@ -395,7 +170,7 @@ function createDelegator() {
395
170
  };
396
171
  }
397
172
  function handleDelegated(ev) {
398
- let target = ev.target;
173
+ let target = !rendering && ev.target;
399
174
  if (target) {
400
175
  const handlersByElement = elementHandlersByEvent.get(ev.type);
401
176
  handlersByElement.get(target)?.(ev, target);
@@ -468,15 +243,20 @@ var Render = class {
468
243
  const commentPrefix = data2.i;
469
244
  const commentPrefixLen = commentPrefix.length;
470
245
  const closestBranchMarkers = /* @__PURE__ */ new Map();
246
+ const visitNodes = new Set(visits);
247
+ let lastEndNode;
471
248
  data2.v = [];
472
- const branchEnd = (branchId, visit, curNode) => {
249
+ const branchEnd = (branchId, visit, reference) => {
473
250
  const branch = scopeLookup[branchId] ||= {};
474
- let endNode = curNode;
475
- while ((endNode = endNode.previousSibling).nodeType === 8) ;
476
- branch.___endNode = endNode;
251
+ let endNode = reference;
252
+ while (visitNodes.has(endNode = endNode.previousSibling)) ;
253
+ if (endNode === lastEndNode) {
254
+ endNode = reference.parentNode.insertBefore(new Text(), reference);
255
+ }
256
+ branch.___endNode = lastEndNode = endNode;
477
257
  branch.___startNode ||= endNode;
478
258
  for (const [markerScopeId, markerNode] of closestBranchMarkers) {
479
- if (branch.___startNode.compareDocumentPosition(markerNode) & 4 && curNode.compareDocumentPosition(markerNode) & 2) {
259
+ if (branch.___startNode.compareDocumentPosition(markerNode) & 4 && reference.compareDocumentPosition(markerNode) & 2) {
480
260
  parentBranchIds.set(markerScopeId, branchId);
481
261
  closestBranchMarkers.delete(markerScopeId);
482
262
  }
@@ -922,7 +702,6 @@ function toValueProp(it) {
922
702
  }
923
703
 
924
704
  // src/dom/parse-html.ts
925
- var fallback = /* @__PURE__ */ new Text();
926
705
  var parser = /* @__PURE__ */ document.createElement("template");
927
706
  function parseHTML(html2) {
928
707
  parser.innerHTML = html2;
@@ -941,7 +720,7 @@ function parseHTMLOrSingleNode(html2) {
941
720
  fragment.appendChild(content);
942
721
  return fragment;
943
722
  }
944
- return fallback;
723
+ return new Text();
945
724
  }
946
725
 
947
726
  // src/dom/dom.ts
@@ -1115,21 +894,17 @@ function attrsEvents(scope, nodeAccessor) {
1115
894
  on(el, name, events[name]);
1116
895
  }
1117
896
  }
1118
- function html(scope, value2, index) {
1119
- const firstChild = scope[index];
1120
- const lastChild = scope[index + "-"] || firstChild;
1121
- const parentNode = firstChild.parentNode;
1122
- const afterReference = lastChild.nextSibling;
1123
- const newContent = parseHTML(value2 || value2 === 0 ? value2 + "" : "<!>");
1124
- scope[index] = newContent.firstChild;
1125
- scope[index + "-" /* DynamicPlaceholderLastChild */] = newContent.lastChild;
1126
- parentNode.insertBefore(newContent, firstChild);
1127
- let current = firstChild;
1128
- while (current !== afterReference) {
1129
- const next = current.nextSibling;
1130
- current.remove();
1131
- current = next;
1132
- }
897
+ function html(scope, value2, accessor) {
898
+ const firstChild = scope[accessor];
899
+ const lastChild = scope[accessor + "-" /* DynamicPlaceholderLastChild */] || firstChild;
900
+ const newContent = parseHTML(
901
+ value2 || value2 === 0 ? value2 + "" : "<!>"
902
+ // TODO: is the comment needed
903
+ );
904
+ scope[accessor] = newContent.firstChild;
905
+ scope[accessor + "-" /* DynamicPlaceholderLastChild */] = newContent.lastChild;
906
+ firstChild.parentNode.insertBefore(newContent, firstChild);
907
+ removeChildNodes(firstChild, lastChild);
1133
908
  }
1134
909
  function props(scope, nodeIndex, index) {
1135
910
  const nextProps = scope[index];
@@ -1169,6 +944,234 @@ function lifecycle(scope, index, thisObj) {
1169
944
  ).onabort = () => thisObj.onDestroy?.();
1170
945
  }
1171
946
  }
947
+ function removeChildNodes(startNode, endNode) {
948
+ const stop = endNode.nextSibling;
949
+ let current = startNode;
950
+ while (current !== stop) {
951
+ const next = current.nextSibling;
952
+ current.remove();
953
+ current = next;
954
+ }
955
+ }
956
+
957
+ // src/dom/scope.ts
958
+ var pendingScopes = [];
959
+ var debugID = 0;
960
+ function createScope($global) {
961
+ const scope = {
962
+ ___pending: 1,
963
+ $global
964
+ };
965
+ if (true) {
966
+ scope.___debugId = "client-" + debugID++;
967
+ }
968
+ pendingScopes.push(scope);
969
+ return scope;
970
+ }
971
+ function finishPendingScopes() {
972
+ for (const scope of pendingScopes) {
973
+ scope.___pending = 0;
974
+ }
975
+ pendingScopes = [];
976
+ }
977
+ var emptyBranch = createScope({});
978
+ function getEmptyBranch(marker) {
979
+ emptyBranch.___startNode = emptyBranch.___endNode = marker;
980
+ return emptyBranch;
981
+ }
982
+ function destroyBranch(branch) {
983
+ branch.___parentBranch?.___branchScopes?.delete(branch);
984
+ destroyNestedBranches(branch);
985
+ }
986
+ function destroyNestedBranches(branch) {
987
+ branch.___destroyed = 1;
988
+ branch.___branchScopes?.forEach(destroyNestedBranches);
989
+ branch.___abortScopes?.forEach((scope) => {
990
+ for (const id in scope.___abortControllers) {
991
+ scope.___abortControllers[id]?.abort();
992
+ }
993
+ });
994
+ }
995
+ function removeAndDestroyBranch(branch) {
996
+ destroyBranch(branch);
997
+ removeChildNodes(branch.___startNode, branch.___endNode);
998
+ }
999
+ function insertBranchBefore(branch, parentNode, nextSibling) {
1000
+ let current = branch.___startNode;
1001
+ const stop = branch.___endNode.nextSibling;
1002
+ while (current !== stop) {
1003
+ const next = current.nextSibling;
1004
+ parentNode.insertBefore(current, nextSibling);
1005
+ current = next;
1006
+ }
1007
+ }
1008
+
1009
+ // src/dom/reconcile.ts
1010
+ var WRONG_POS = 2147483647;
1011
+ function reconcile(parent, oldBranches, newBranches, afterReference) {
1012
+ let oldStart = 0;
1013
+ let newStart = 0;
1014
+ let oldEnd = oldBranches.length - 1;
1015
+ let newEnd = newBranches.length - 1;
1016
+ let oldStartBranch = oldBranches[oldStart];
1017
+ let newStartBranch = newBranches[newStart];
1018
+ let oldEndBranch = oldBranches[oldEnd];
1019
+ let newEndBranch = newBranches[newEnd];
1020
+ let i;
1021
+ let j;
1022
+ let k;
1023
+ let nextSibling;
1024
+ let oldBranch;
1025
+ let newBranch;
1026
+ outer: {
1027
+ while (oldStartBranch === newStartBranch) {
1028
+ ++oldStart;
1029
+ ++newStart;
1030
+ if (oldStart > oldEnd || newStart > newEnd) {
1031
+ break outer;
1032
+ }
1033
+ oldStartBranch = oldBranches[oldStart];
1034
+ newStartBranch = newBranches[newStart];
1035
+ }
1036
+ while (oldEndBranch === newEndBranch) {
1037
+ --oldEnd;
1038
+ --newEnd;
1039
+ if (oldStart > oldEnd || newStart > newEnd) {
1040
+ break outer;
1041
+ }
1042
+ oldEndBranch = oldBranches[oldEnd];
1043
+ newEndBranch = newBranches[newEnd];
1044
+ }
1045
+ }
1046
+ if (oldStart > oldEnd) {
1047
+ if (newStart <= newEnd) {
1048
+ k = newEnd + 1;
1049
+ nextSibling = k < newBranches.length ? newBranches[k].___startNode : afterReference;
1050
+ do {
1051
+ insertBranchBefore(newBranches[newStart++], parent, nextSibling);
1052
+ } while (newStart <= newEnd);
1053
+ }
1054
+ } else if (newStart > newEnd) {
1055
+ do {
1056
+ removeAndDestroyBranch(oldBranches[oldStart++]);
1057
+ } while (oldStart <= oldEnd);
1058
+ } else {
1059
+ const oldLength = oldEnd - oldStart + 1;
1060
+ const newLength = newEnd - newStart + 1;
1061
+ const aNullable = oldBranches;
1062
+ const sources = new Array(newLength);
1063
+ for (i = 0; i < newLength; ++i) {
1064
+ sources[i] = -1;
1065
+ }
1066
+ let pos = 0;
1067
+ let synced = 0;
1068
+ const keyIndex = /* @__PURE__ */ new Map();
1069
+ for (j = newStart; j <= newEnd; ++j) {
1070
+ keyIndex.set(newBranches[j], j);
1071
+ }
1072
+ for (i = oldStart; i <= oldEnd && synced < newLength; ++i) {
1073
+ oldBranch = oldBranches[i];
1074
+ j = keyIndex.get(oldBranch);
1075
+ if (j !== void 0) {
1076
+ pos = pos > j ? WRONG_POS : j;
1077
+ ++synced;
1078
+ newBranch = newBranches[j];
1079
+ sources[j - newStart] = i;
1080
+ aNullable[i] = null;
1081
+ }
1082
+ }
1083
+ if (oldLength === oldBranches.length && synced === 0) {
1084
+ for (; newStart < newLength; ++newStart) {
1085
+ insertBranchBefore(newBranches[newStart], parent, afterReference);
1086
+ }
1087
+ for (; oldStart < oldLength; ++oldStart) {
1088
+ removeAndDestroyBranch(oldBranches[oldStart]);
1089
+ }
1090
+ } else {
1091
+ i = oldLength - synced;
1092
+ while (i > 0) {
1093
+ oldBranch = aNullable[oldStart++];
1094
+ if (oldBranch !== null) {
1095
+ removeAndDestroyBranch(oldBranch);
1096
+ i--;
1097
+ }
1098
+ }
1099
+ if (pos === WRONG_POS) {
1100
+ const seq = longestIncreasingSubsequence(sources);
1101
+ j = seq.length - 1;
1102
+ k = newBranches.length;
1103
+ for (i = newLength - 1; i >= 0; --i) {
1104
+ if (sources[i] === -1) {
1105
+ pos = i + newStart;
1106
+ newBranch = newBranches[pos++];
1107
+ nextSibling = pos < k ? newBranches[pos].___startNode : afterReference;
1108
+ insertBranchBefore(newBranch, parent, nextSibling);
1109
+ } else {
1110
+ if (j < 0 || i !== seq[j]) {
1111
+ pos = i + newStart;
1112
+ newBranch = newBranches[pos++];
1113
+ nextSibling = pos < k ? newBranches[pos].___startNode : afterReference;
1114
+ insertBranchBefore(newBranch, parent, nextSibling);
1115
+ } else {
1116
+ --j;
1117
+ }
1118
+ }
1119
+ }
1120
+ } else if (synced !== newLength) {
1121
+ k = newBranches.length;
1122
+ for (i = newLength - 1; i >= 0; --i) {
1123
+ if (sources[i] === -1) {
1124
+ pos = i + newStart;
1125
+ newBranch = newBranches[pos++];
1126
+ nextSibling = pos < k ? newBranches[pos].___startNode : afterReference;
1127
+ insertBranchBefore(newBranch, parent, nextSibling);
1128
+ }
1129
+ }
1130
+ }
1131
+ }
1132
+ }
1133
+ }
1134
+ function longestIncreasingSubsequence(a) {
1135
+ const p = a.slice();
1136
+ const result = [];
1137
+ result.push(0);
1138
+ let u;
1139
+ let v;
1140
+ for (let i = 0, il = a.length; i < il; ++i) {
1141
+ if (a[i] === -1) {
1142
+ continue;
1143
+ }
1144
+ const j = result[result.length - 1];
1145
+ if (a[j] < a[i]) {
1146
+ p[i] = j;
1147
+ result.push(i);
1148
+ continue;
1149
+ }
1150
+ u = 0;
1151
+ v = result.length - 1;
1152
+ while (u < v) {
1153
+ const c = (u + v) / 2 | 0;
1154
+ if (a[result[c]] < a[i]) {
1155
+ u = c + 1;
1156
+ } else {
1157
+ v = c;
1158
+ }
1159
+ }
1160
+ if (a[i] < a[result[u]]) {
1161
+ if (u > 0) {
1162
+ p[i] = result[u - 1];
1163
+ }
1164
+ result[u] = i;
1165
+ }
1166
+ }
1167
+ u = result.length;
1168
+ v = result[u - 1];
1169
+ while (u-- > 0) {
1170
+ result[u] = v;
1171
+ v = p[v];
1172
+ }
1173
+ return result;
1174
+ }
1172
1175
 
1173
1176
  // src/dom/walker.ts
1174
1177
  var walker = /* @__PURE__ */ document.createTreeWalker(document);
@@ -1177,9 +1180,9 @@ function trimWalkString(walkString) {
1177
1180
  while (walkString.charCodeAt(--end) > 47 /* BeginChild */) ;
1178
1181
  return walkString.slice(0, end + 1);
1179
1182
  }
1180
- function walk(startNode, walkCodes, scope) {
1183
+ function walk(startNode, walkCodes, branch) {
1181
1184
  walker.currentNode = startNode;
1182
- walkInternal(walkCodes, scope, 0);
1185
+ walkInternal(walkCodes, branch, 0);
1183
1186
  walker.currentNode = document;
1184
1187
  }
1185
1188
  function walkInternal(walkCodes, scope, currentWalkIndex) {
@@ -1210,7 +1213,6 @@ function walkInternal(walkCodes, scope, currentWalkIndex) {
1210
1213
  }
1211
1214
  } else if (value2 === 47 /* BeginChild */) {
1212
1215
  const childScope = scope[true ? getDebugKey(currentScopeIndex++, "#childScope") : currentScopeIndex++] = createScope(scope.$global);
1213
- childScope.___startNode = walker.currentNode;
1214
1216
  childScope.___closestBranch = scope.___closestBranch;
1215
1217
  currentWalkIndex = walkInternal(walkCodes, childScope, currentWalkIndex);
1216
1218
  } else if (value2 === 38 /* EndChild */) {
@@ -1389,8 +1391,8 @@ function setConditionalRenderer(scope, nodeAccessor, newRenderer) {
1389
1391
  const newBranch = newRenderer ? createBranchScopeWithTagNameOrRenderer(newRenderer, scope.$global, scope) : getEmptyBranch(scope[nodeAccessor]);
1390
1392
  insertBranchBefore(
1391
1393
  newBranch,
1392
- prevBranch.___startNode.parentNode,
1393
- prevBranch.___startNode
1394
+ prevBranch.___endNode.parentNode,
1395
+ prevBranch.___endNode.nextSibling
1394
1396
  );
1395
1397
  removeAndDestroyBranch(prevBranch);
1396
1398
  scope[nodeAccessor + "!" /* ConditionalScope */] = newRenderer && newBranch;
@@ -1854,16 +1856,18 @@ function abort(ctrl) {
1854
1856
  var prefix = true ? "$compat_" : "$C_";
1855
1857
  var RENDERER_REGISTER_ID = prefix + (true ? "renderer" : "r");
1856
1858
  var SET_SCOPE_REGISTER_ID = prefix + (true ? "setScope" : "s");
1859
+ var RENDER_BODY_ID = prefix + (true ? "renderBody" : "b");
1857
1860
 
1858
1861
  // src/dom/compat.ts
1859
- var classIdToScope = /* @__PURE__ */ new Map();
1862
+ var classIdToBranch = /* @__PURE__ */ new Map();
1860
1863
  var compat = {
1861
1864
  patchConditionals,
1862
1865
  queueEffect,
1863
- init() {
1864
- register(SET_SCOPE_REGISTER_ID, (scope) => {
1865
- classIdToScope.set(scope.m5c, scope);
1866
+ init(warp10Noop) {
1867
+ register(SET_SCOPE_REGISTER_ID, (branch) => {
1868
+ classIdToBranch.set(branch.m5c, branch);
1866
1869
  });
1870
+ register(RENDER_BODY_ID, warp10Noop);
1867
1871
  },
1868
1872
  registerRenderer(fn) {
1869
1873
  register(RENDERER_REGISTER_ID, fn);
@@ -1874,12 +1878,12 @@ var compat = {
1874
1878
  isRenderer(renderer) {
1875
1879
  return renderer.___clone !== void 0;
1876
1880
  },
1877
- getStartNode(scope) {
1878
- return scope.___startNode;
1881
+ getStartNode(branch) {
1882
+ return branch.___startNode;
1879
1883
  },
1880
- setScopeNodes(scope, startNode, endNode) {
1881
- scope.___startNode = startNode;
1882
- scope.___endNode = endNode;
1884
+ setScopeNodes(branch, startNode, endNode) {
1885
+ branch.___startNode = startNode;
1886
+ branch.___endNode = endNode;
1883
1887
  },
1884
1888
  runComponentEffects() {
1885
1889
  runEffects(this.effects);
@@ -1907,12 +1911,12 @@ var compat = {
1907
1911
  return renderer;
1908
1912
  },
1909
1913
  render(out, component, renderer, args) {
1910
- let scope = component.scope;
1911
- if (!scope) {
1912
- scope = classIdToScope.get(component.id);
1913
- if (scope) {
1914
- component.scope = scope;
1915
- classIdToScope.delete(component.id);
1914
+ let branch = component.scope;
1915
+ if (!branch) {
1916
+ branch = classIdToBranch.get(component.id);
1917
+ if (branch) {
1918
+ component.scope = branch;
1919
+ classIdToBranch.delete(component.id);
1916
1920
  }
1917
1921
  }
1918
1922
  const applyArgs = renderer.___args || noop;
@@ -1925,18 +1929,18 @@ var compat = {
1925
1929
  }
1926
1930
  }
1927
1931
  component.effects = prepareEffects(() => {
1928
- if (!scope) {
1929
- scope = component.scope = createScope(out.global);
1930
- scope._ = renderer.___owner;
1931
- initBranch(renderer, scope);
1932
+ if (!branch) {
1933
+ branch = component.scope = createScope(out.global);
1934
+ branch._ = renderer.___owner;
1935
+ initBranch(renderer, branch);
1932
1936
  } else {
1933
- applyArgs(scope, MARK);
1937
+ applyArgs(branch, MARK);
1934
1938
  existing = true;
1935
1939
  }
1936
- applyArgs(scope, args);
1940
+ applyArgs(branch, args);
1937
1941
  });
1938
1942
  if (!existing) {
1939
- return scope.___startNode === scope.___endNode ? scope.___startNode : scope.___startNode.parentNode;
1943
+ return branch.___startNode === branch.___endNode ? branch.___startNode : branch.___startNode.parentNode;
1940
1944
  }
1941
1945
  }
1942
1946
  };