@marko/runtime-tags 6.0.139 → 6.0.140

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.
package/dist/debug/dom.js CHANGED
@@ -71,6 +71,7 @@ __export(dom_exports, {
71
71
  _for_to: () => _for_to,
72
72
  _for_until: () => _for_until,
73
73
  _hoist: () => _hoist,
74
+ _hoist_resume: () => _hoist_resume,
74
75
  _html: () => _html,
75
76
  _id: () => _id,
76
77
  _if: () => _if,
@@ -656,19 +657,22 @@ function _el_read(value) {
656
657
  }
657
658
  return value;
658
659
  }
659
- function* traverseAllHoisted(scope, path, curIndex = path.length - 1) {
660
+ function* traverse(scope, path, i = path.length - 1) {
660
661
  if (rendering) {
661
662
  _hoist_read_error();
662
663
  }
663
664
  if (scope) {
664
665
  if (Symbol.iterator in scope) {
665
- for (const s of scope instanceof Map ? scope.values() : scope) {
666
- yield* traverseAllHoisted(s, path, curIndex);
666
+ for (const childScope of scope.values()) {
667
+ yield* traverse(childScope, path, i);
667
668
  }
668
- } else if (curIndex) {
669
- yield* traverseAllHoisted(scope[path[curIndex]], path, curIndex - 1);
670
669
  } else {
671
- yield scope[path[0]];
670
+ const item = scope[path[i]];
671
+ if (i) {
672
+ yield* traverse(item, path, i - 1);
673
+ } else {
674
+ yield typeof item === "function" ? item() : item;
675
+ }
672
676
  }
673
677
  }
674
678
  }
@@ -676,11 +680,14 @@ function _hoist(...path) {
676
680
  if (false)
677
681
  path = path.map((p) => typeof p === "string" ? p : decodeAccessor(p));
678
682
  return (scope) => {
679
- const getOne = (...args) => iterator().next().value?.(...args);
680
- const iterator = getOne[Symbol.iterator] = () => traverseAllHoisted(scope, path);
681
- return getOne;
683
+ const fn = () => traverse(scope, path).next().value;
684
+ fn[Symbol.iterator] = () => traverse(scope, path);
685
+ return fn;
682
686
  };
683
687
  }
688
+ function _hoist_resume(id, ...path) {
689
+ return _resume(id, _hoist(...path));
690
+ }
684
691
 
685
692
  // src/dom/walker.ts
686
693
  var walker = /* @__PURE__ */ document.createTreeWalker(document);
@@ -690,7 +697,6 @@ function walk(startNode, walkCodes, branch) {
690
697
  }
691
698
  function walkInternal(currentWalkIndex, walkCodes, scope) {
692
699
  let value;
693
- let id;
694
700
  let storedMultiplier = 0;
695
701
  let currentMultiplier = 0;
696
702
  let currentScopeIndex = 0;
@@ -700,8 +706,7 @@ function walkInternal(currentWalkIndex, walkCodes, scope) {
700
706
  storedMultiplier = 0;
701
707
  if (value === 32 /* Get */) {
702
708
  const node = walker.currentNode;
703
- scope[id = true ? getDebugKey(currentScopeIndex++, node) : decodeAccessor2(currentScopeIndex++)] = node;
704
- scope["Getter:" /* Getter */ + id] = () => node;
709
+ scope[true ? getDebugKey(currentScopeIndex++, node) : decodeAccessor2(currentScopeIndex++)] = node;
705
710
  } else if (value === 37 /* Replace */ || value === 49 /* DynamicTagWithVar */) {
706
711
  walker.currentNode.replaceWith(
707
712
  walker.currentNode = scope[true ? getDebugKey(currentScopeIndex++, "#text") : decodeAccessor2(currentScopeIndex++)] = new Text()
@@ -888,11 +893,9 @@ function init(runtimeId = DEFAULT_RUNTIME_ID) {
888
893
  const visitBranches = branchesEnabled && /* @__PURE__ */ ((branchScopesStack = [], branchStarts = [], orphanBranches = [], curBranchScopes) => {
889
894
  return (branchId, branch, endedBranches, accessor, singleNode, parent = visit.parentNode, startVisit = visit, i = orphanBranches.length) => {
890
895
  if (visitType !== "[" /* BranchStart */) {
891
- visitScope["Getter:" /* Getter */ + nextToken(
896
+ visitScope[nextToken(
892
897
  /* read accessor */
893
- )] = /* @__PURE__ */ ((node) => () => node)(
894
- visitScope[lastToken] = visitType === ")" /* BranchEndOnlyChildInParent */ || visitType === "}" /* BranchEndSingleNodeOnlyChildInParent */ ? parent : visit
895
- );
898
+ )] = visitType === ")" /* BranchEndOnlyChildInParent */ || visitType === "}" /* BranchEndSingleNodeOnlyChildInParent */ ? parent : visit;
896
899
  accessor = "BranchScopes:" /* BranchScopes */ + lastToken;
897
900
  singleNode = visitType !== "]" /* BranchEnd */ && visitType !== ")" /* BranchEndOnlyChildInParent */;
898
901
  nextToken(
@@ -1005,7 +1008,9 @@ function init(runtimeId = DEFAULT_RUNTIME_ID) {
1005
1008
  /* read scope id */
1006
1009
  ));
1007
1010
  if (visitType === "*" /* Node */) {
1008
- visitScope["Getter:" /* Getter */ + nextToken()] = /* @__PURE__ */ ((node) => () => node)(visitScope[lastToken] = visit.previousSibling);
1011
+ visitScope[nextToken(
1012
+ /* read accessor */
1013
+ )] = visit.previousSibling;
1009
1014
  } else if (branchesEnabled) {
1010
1015
  visitBranches();
1011
1016
  }
@@ -1054,10 +1059,12 @@ function _var_resume(id, signal) {
1054
1059
  return signal;
1055
1060
  }
1056
1061
  function _el(id, accessor) {
1057
- const getterAccessor = "Getter:" /* Getter */ + (true ? accessor : decodeAccessor3(accessor));
1058
- return _resume(id, (scope) => () => {
1059
- return scope[getterAccessor]();
1060
- });
1062
+ if (true) {
1063
+ return _resume(id, (scope) => () => _el_read(scope[accessor]));
1064
+ } else {
1065
+ accessor = decodeAccessor3(accessor);
1066
+ return _resume(id, (scope) => () => scope[accessor]);
1067
+ }
1061
1068
  }
1062
1069
 
1063
1070
  // src/dom/controllable.ts
@@ -550,19 +550,22 @@ function _el_read(value) {
550
550
  }
551
551
  return value;
552
552
  }
553
- function* traverseAllHoisted(scope, path, curIndex = path.length - 1) {
553
+ function* traverse(scope, path, i = path.length - 1) {
554
554
  if (rendering) {
555
555
  _hoist_read_error();
556
556
  }
557
557
  if (scope) {
558
558
  if (Symbol.iterator in scope) {
559
- for (const s of scope instanceof Map ? scope.values() : scope) {
560
- yield* traverseAllHoisted(s, path, curIndex);
559
+ for (const childScope of scope.values()) {
560
+ yield* traverse(childScope, path, i);
561
561
  }
562
- } else if (curIndex) {
563
- yield* traverseAllHoisted(scope[path[curIndex]], path, curIndex - 1);
564
562
  } else {
565
- yield scope[path[0]];
563
+ const item = scope[path[i]];
564
+ if (i) {
565
+ yield* traverse(item, path, i - 1);
566
+ } else {
567
+ yield typeof item === "function" ? item() : item;
568
+ }
566
569
  }
567
570
  }
568
571
  }
@@ -570,11 +573,14 @@ function _hoist(...path) {
570
573
  if (false)
571
574
  path = path.map((p) => typeof p === "string" ? p : decodeAccessor(p));
572
575
  return (scope) => {
573
- const getOne = (...args) => iterator().next().value?.(...args);
574
- const iterator = getOne[Symbol.iterator] = () => traverseAllHoisted(scope, path);
575
- return getOne;
576
+ const fn = () => traverse(scope, path).next().value;
577
+ fn[Symbol.iterator] = () => traverse(scope, path);
578
+ return fn;
576
579
  };
577
580
  }
581
+ function _hoist_resume(id, ...path) {
582
+ return _resume(id, _hoist(...path));
583
+ }
578
584
 
579
585
  // src/dom/walker.ts
580
586
  var walker = /* @__PURE__ */ document.createTreeWalker(document);
@@ -584,7 +590,6 @@ function walk(startNode, walkCodes, branch) {
584
590
  }
585
591
  function walkInternal(currentWalkIndex, walkCodes, scope) {
586
592
  let value;
587
- let id;
588
593
  let storedMultiplier = 0;
589
594
  let currentMultiplier = 0;
590
595
  let currentScopeIndex = 0;
@@ -594,8 +599,7 @@ function walkInternal(currentWalkIndex, walkCodes, scope) {
594
599
  storedMultiplier = 0;
595
600
  if (value === 32 /* Get */) {
596
601
  const node = walker.currentNode;
597
- scope[id = true ? getDebugKey(currentScopeIndex++, node) : decodeAccessor2(currentScopeIndex++)] = node;
598
- scope["Getter:" /* Getter */ + id] = () => node;
602
+ scope[true ? getDebugKey(currentScopeIndex++, node) : decodeAccessor2(currentScopeIndex++)] = node;
599
603
  } else if (value === 37 /* Replace */ || value === 49 /* DynamicTagWithVar */) {
600
604
  walker.currentNode.replaceWith(
601
605
  walker.currentNode = scope[true ? getDebugKey(currentScopeIndex++, "#text") : decodeAccessor2(currentScopeIndex++)] = new Text()
@@ -782,11 +786,9 @@ function init(runtimeId = DEFAULT_RUNTIME_ID) {
782
786
  const visitBranches = branchesEnabled && /* @__PURE__ */ ((branchScopesStack = [], branchStarts = [], orphanBranches = [], curBranchScopes) => {
783
787
  return (branchId, branch, endedBranches, accessor, singleNode, parent = visit.parentNode, startVisit = visit, i = orphanBranches.length) => {
784
788
  if (visitType !== "[" /* BranchStart */) {
785
- visitScope["Getter:" /* Getter */ + nextToken(
789
+ visitScope[nextToken(
786
790
  /* read accessor */
787
- )] = /* @__PURE__ */ ((node) => () => node)(
788
- visitScope[lastToken] = visitType === ")" /* BranchEndOnlyChildInParent */ || visitType === "}" /* BranchEndSingleNodeOnlyChildInParent */ ? parent : visit
789
- );
791
+ )] = visitType === ")" /* BranchEndOnlyChildInParent */ || visitType === "}" /* BranchEndSingleNodeOnlyChildInParent */ ? parent : visit;
790
792
  accessor = "BranchScopes:" /* BranchScopes */ + lastToken;
791
793
  singleNode = visitType !== "]" /* BranchEnd */ && visitType !== ")" /* BranchEndOnlyChildInParent */;
792
794
  nextToken(
@@ -899,7 +901,9 @@ function init(runtimeId = DEFAULT_RUNTIME_ID) {
899
901
  /* read scope id */
900
902
  ));
901
903
  if (visitType === "*" /* Node */) {
902
- visitScope["Getter:" /* Getter */ + nextToken()] = /* @__PURE__ */ ((node) => () => node)(visitScope[lastToken] = visit.previousSibling);
904
+ visitScope[nextToken(
905
+ /* read accessor */
906
+ )] = visit.previousSibling;
903
907
  } else if (branchesEnabled) {
904
908
  visitBranches();
905
909
  }
@@ -948,10 +952,12 @@ function _var_resume(id, signal) {
948
952
  return signal;
949
953
  }
950
954
  function _el(id, accessor) {
951
- const getterAccessor = "Getter:" /* Getter */ + (true ? accessor : decodeAccessor3(accessor));
952
- return _resume(id, (scope) => () => {
953
- return scope[getterAccessor]();
954
- });
955
+ if (true) {
956
+ return _resume(id, (scope) => () => _el_read(scope[accessor]));
957
+ } else {
958
+ accessor = decodeAccessor3(accessor);
959
+ return _resume(id, (scope) => () => scope[accessor]);
960
+ }
955
961
  }
956
962
 
957
963
  // src/dom/controllable.ts
@@ -2574,6 +2580,7 @@ export {
2574
2580
  _for_to,
2575
2581
  _for_until,
2576
2582
  _hoist,
2583
+ _hoist_resume,
2577
2584
  _html,
2578
2585
  _id,
2579
2586
  _if,
@@ -1,5 +1,5 @@
1
1
  import { type AwaitCounter, type EncodedAccessor, type Scope } from "../common/types";
2
- import type { Signal } from "./signals";
2
+ import { type Signal } from "./signals";
3
3
  type Resumes = (number | Scope)[];
4
4
  type ResumeFn = (ctx: object) => Resumes;
5
5
  export interface Renders {
@@ -29,4 +29,8 @@ export declare const _var_change: (scope: Scope, value: unknown, name?: string)
29
29
  export declare function _id({ [AccessorProp.Global]: $global }: Scope): string;
30
30
  export declare function _script(id: string, fn: (scope: Scope) => void): (scope: Scope) => void;
31
31
  export declare function _el_read<T>(value: T): T;
32
- export declare function _hoist(...path: Accessor[]): (scope: Scope) => (...args: unknown[]) => any;
32
+ type Hoistable<T> = () => T;
33
+ type Hoisted<T> = Hoistable<T> & Iterable<T>;
34
+ export declare function _hoist<T>(...path: Accessor[]): (scope: Scope) => Hoisted<T>;
35
+ export declare function _hoist_resume<T>(id: string, ...path: Accessor[]): (scope: Scope) => Hoisted<T>;
36
+ export {};
package/dist/dom.d.ts CHANGED
@@ -11,5 +11,5 @@ export { _on } from "./dom/event";
11
11
  export { _enable_catch as _enable_catch, run } from "./dom/queue";
12
12
  export { _content, _content_closures, _content_resume } from "./dom/renderer";
13
13
  export { _el, _resume, _var_resume, init } from "./dom/resume";
14
- export { _child_setup, _closure, _closure_get, _const, _el_read, _for_closure, _hoist, _id, _if_closure, _let, _or, _return, _return_change, _script, _var, _var_change, } from "./dom/signals";
14
+ export { _child_setup, _closure, _closure_get, _const, _el_read, _for_closure, _hoist, _hoist_resume, _id, _if_closure, _let, _or, _return, _return_change, _script, _var, _var_change, } from "./dom/signals";
15
15
  export { _template } from "./dom/template";
package/dist/dom.js CHANGED
@@ -68,6 +68,7 @@ __export(dom_exports, {
68
68
  _for_to: () => _for_to,
69
69
  _for_until: () => _for_until,
70
70
  _hoist: () => _hoist,
71
+ _hoist_resume: () => _hoist_resume,
71
72
  _html: () => _html,
72
73
  _id: () => _id,
73
74
  _if: () => _if,
@@ -412,19 +413,25 @@ function _script(id, fn) {
412
413
  function _el_read(value) {
413
414
  return rendering && void 0, value;
414
415
  }
415
- function* traverseAllHoisted(scope, path, curIndex = path.length - 1) {
416
+ function* traverse(scope, path, i = path.length - 1) {
416
417
  if (scope)
417
418
  if (Symbol.iterator in scope)
418
- for (let s of scope instanceof Map ? scope.values() : scope)
419
- yield* traverseAllHoisted(s, path, curIndex);
420
- else curIndex ? yield* traverseAllHoisted(scope[path[curIndex]], path, curIndex - 1) : yield scope[path[0]];
419
+ for (let childScope of scope.values())
420
+ yield* traverse(childScope, path, i);
421
+ else {
422
+ let item = scope[path[i]];
423
+ i ? yield* traverse(item, path, i - 1) : yield typeof item == "function" ? item() : item;
424
+ }
421
425
  }
422
426
  function _hoist(...path) {
423
427
  return path = path.map((p) => typeof p == "string" ? p : decodeAccessor(p)), (scope) => {
424
- let getOne = (...args) => iterator().next().value?.(...args), iterator = getOne[Symbol.iterator] = () => traverseAllHoisted(scope, path);
425
- return getOne;
428
+ let fn = () => traverse(scope, path).next().value;
429
+ return fn[Symbol.iterator] = () => traverse(scope, path), fn;
426
430
  };
427
431
  }
432
+ function _hoist_resume(id, ...path) {
433
+ return _resume(id, _hoist(...path));
434
+ }
428
435
 
429
436
  // src/dom/walker.ts
430
437
  var walker = /* @__PURE__ */ document.createTreeWalker(document);
@@ -432,11 +439,11 @@ function walk(startNode, walkCodes, branch) {
432
439
  walker.currentNode = startNode, walkInternal(0, walkCodes, branch);
433
440
  }
434
441
  function walkInternal(currentWalkIndex, walkCodes, scope) {
435
- let value, id, storedMultiplier = 0, currentMultiplier = 0, currentScopeIndex = 0;
442
+ let value, storedMultiplier = 0, currentMultiplier = 0, currentScopeIndex = 0;
436
443
  for (; currentWalkIndex < walkCodes.length; )
437
444
  if (value = walkCodes.charCodeAt(currentWalkIndex++), currentMultiplier = storedMultiplier, storedMultiplier = 0, value === 32 /* Get */) {
438
445
  let node = walker.currentNode;
439
- scope[id = decodeAccessor(currentScopeIndex++)] = node, scope["J" /* Getter */ + id] = () => node;
446
+ scope[decodeAccessor(currentScopeIndex++)] = node;
440
447
  } else if (value === 37 /* Replace */ || value === 49 /* DynamicTagWithVar */)
441
448
  walker.currentNode.replaceWith(
442
449
  walker.currentNode = scope[decodeAccessor(currentScopeIndex++)] = new Text()
@@ -553,11 +560,9 @@ function init(runtimeId = "M") {
553
560
  let render = resumeRender[renderId] = renders2[renderId] || renders2(renderId), walk2 = render.w, scopeLookup = render.s = {}, getScope = (id) => scopeLookup[id] ||= { L: +id }, serializeContext = {
554
561
  _: registeredValues
555
562
  }, visitBranches = branchesEnabled && /* @__PURE__ */ ((branchScopesStack = [], branchStarts = [], orphanBranches = [], curBranchScopes) => (branchId, branch, endedBranches, accessor, singleNode, parent = visit.parentNode, startVisit = visit, i = orphanBranches.length) => {
556
- for (visitType !== "[" /* BranchStart */ && (visitScope["J" /* Getter */ + nextToken(
563
+ for (visitType !== "[" /* BranchStart */ && (visitScope[nextToken(
557
564
  /* read accessor */
558
- )] = /* @__PURE__ */ ((node) => () => node)(
559
- visitScope[lastToken] = visitType === ")" /* BranchEndOnlyChildInParent */ || visitType === "}" /* BranchEndSingleNodeOnlyChildInParent */ ? parent : visit
560
- ), accessor = "A" /* BranchScopes */ + lastToken, singleNode = visitType !== "]" /* BranchEnd */ && visitType !== ")" /* BranchEndOnlyChildInParent */, nextToken(
565
+ )] = visitType === ")" /* BranchEndOnlyChildInParent */ || visitType === "}" /* BranchEndSingleNodeOnlyChildInParent */ ? parent : visit, accessor = "A" /* BranchScopes */ + lastToken, singleNode = visitType !== "]" /* BranchEnd */ && visitType !== ")" /* BranchEndOnlyChildInParent */, nextToken(
561
566
  /* read optional first branchId */
562
567
  )); branchId = +lastToken; ) {
563
568
  if ((endedBranches ||= []).push(
@@ -593,7 +598,9 @@ function init(runtimeId = "M") {
593
598
  for (visit of visits = render.v)
594
599
  lastTokenIndex = render.i.length, visitText = visit.data, visitType = visitText[lastTokenIndex++], visitScope = getScope(nextToken(
595
600
  /* read scope id */
596
- )), visitType === "*" /* Node */ ? visitScope["J" /* Getter */ + nextToken()] = /* @__PURE__ */ ((node) => () => node)(visitScope[lastToken] = visit.previousSibling) : branchesEnabled && visitBranches();
601
+ )), visitType === "*" /* Node */ ? visitScope[nextToken(
602
+ /* read accessor */
603
+ )] = visit.previousSibling : branchesEnabled && visitBranches();
597
604
  return visits.length = resumes.length = 0, effects;
598
605
  }, render.w = () => {
599
606
  walk2(), runResumeEffects(render);
@@ -630,8 +637,7 @@ function _var_resume(id, signal) {
630
637
  return _resume(id, (scope) => (value) => signal(scope, value)), signal;
631
638
  }
632
639
  function _el(id, accessor) {
633
- let getterAccessor = "J" /* Getter */ + decodeAccessor(accessor);
634
- return _resume(id, (scope) => () => scope[getterAccessor]());
640
+ return accessor = decodeAccessor(accessor), _resume(id, (scope) => () => scope[accessor]);
635
641
  }
636
642
 
637
643
  // src/dom/controllable.ts
package/dist/dom.mjs CHANGED
@@ -309,19 +309,25 @@ function _script(id, fn) {
309
309
  function _el_read(value) {
310
310
  return rendering && void 0, value;
311
311
  }
312
- function* traverseAllHoisted(scope, path, curIndex = path.length - 1) {
312
+ function* traverse(scope, path, i = path.length - 1) {
313
313
  if (scope)
314
314
  if (Symbol.iterator in scope)
315
- for (let s of scope instanceof Map ? scope.values() : scope)
316
- yield* traverseAllHoisted(s, path, curIndex);
317
- else curIndex ? yield* traverseAllHoisted(scope[path[curIndex]], path, curIndex - 1) : yield scope[path[0]];
315
+ for (let childScope of scope.values())
316
+ yield* traverse(childScope, path, i);
317
+ else {
318
+ let item = scope[path[i]];
319
+ i ? yield* traverse(item, path, i - 1) : yield typeof item == "function" ? item() : item;
320
+ }
318
321
  }
319
322
  function _hoist(...path) {
320
323
  return path = path.map((p) => typeof p == "string" ? p : decodeAccessor(p)), (scope) => {
321
- let getOne = (...args) => iterator().next().value?.(...args), iterator = getOne[Symbol.iterator] = () => traverseAllHoisted(scope, path);
322
- return getOne;
324
+ let fn = () => traverse(scope, path).next().value;
325
+ return fn[Symbol.iterator] = () => traverse(scope, path), fn;
323
326
  };
324
327
  }
328
+ function _hoist_resume(id, ...path) {
329
+ return _resume(id, _hoist(...path));
330
+ }
325
331
 
326
332
  // src/dom/walker.ts
327
333
  var walker = /* @__PURE__ */ document.createTreeWalker(document);
@@ -329,11 +335,11 @@ function walk(startNode, walkCodes, branch) {
329
335
  walker.currentNode = startNode, walkInternal(0, walkCodes, branch);
330
336
  }
331
337
  function walkInternal(currentWalkIndex, walkCodes, scope) {
332
- let value, id, storedMultiplier = 0, currentMultiplier = 0, currentScopeIndex = 0;
338
+ let value, storedMultiplier = 0, currentMultiplier = 0, currentScopeIndex = 0;
333
339
  for (; currentWalkIndex < walkCodes.length; )
334
340
  if (value = walkCodes.charCodeAt(currentWalkIndex++), currentMultiplier = storedMultiplier, storedMultiplier = 0, value === 32 /* Get */) {
335
341
  let node = walker.currentNode;
336
- scope[id = decodeAccessor(currentScopeIndex++)] = node, scope["J" /* Getter */ + id] = () => node;
342
+ scope[decodeAccessor(currentScopeIndex++)] = node;
337
343
  } else if (value === 37 /* Replace */ || value === 49 /* DynamicTagWithVar */)
338
344
  walker.currentNode.replaceWith(
339
345
  walker.currentNode = scope[decodeAccessor(currentScopeIndex++)] = new Text()
@@ -450,11 +456,9 @@ function init(runtimeId = "M") {
450
456
  let render = resumeRender[renderId] = renders2[renderId] || renders2(renderId), walk2 = render.w, scopeLookup = render.s = {}, getScope = (id) => scopeLookup[id] ||= { L: +id }, serializeContext = {
451
457
  _: registeredValues
452
458
  }, visitBranches = branchesEnabled && /* @__PURE__ */ ((branchScopesStack = [], branchStarts = [], orphanBranches = [], curBranchScopes) => (branchId, branch, endedBranches, accessor, singleNode, parent = visit.parentNode, startVisit = visit, i = orphanBranches.length) => {
453
- for (visitType !== "[" /* BranchStart */ && (visitScope["J" /* Getter */ + nextToken(
459
+ for (visitType !== "[" /* BranchStart */ && (visitScope[nextToken(
454
460
  /* read accessor */
455
- )] = /* @__PURE__ */ ((node) => () => node)(
456
- visitScope[lastToken] = visitType === ")" /* BranchEndOnlyChildInParent */ || visitType === "}" /* BranchEndSingleNodeOnlyChildInParent */ ? parent : visit
457
- ), accessor = "A" /* BranchScopes */ + lastToken, singleNode = visitType !== "]" /* BranchEnd */ && visitType !== ")" /* BranchEndOnlyChildInParent */, nextToken(
461
+ )] = visitType === ")" /* BranchEndOnlyChildInParent */ || visitType === "}" /* BranchEndSingleNodeOnlyChildInParent */ ? parent : visit, accessor = "A" /* BranchScopes */ + lastToken, singleNode = visitType !== "]" /* BranchEnd */ && visitType !== ")" /* BranchEndOnlyChildInParent */, nextToken(
458
462
  /* read optional first branchId */
459
463
  )); branchId = +lastToken; ) {
460
464
  if ((endedBranches ||= []).push(
@@ -490,7 +494,9 @@ function init(runtimeId = "M") {
490
494
  for (visit of visits = render.v)
491
495
  lastTokenIndex = render.i.length, visitText = visit.data, visitType = visitText[lastTokenIndex++], visitScope = getScope(nextToken(
492
496
  /* read scope id */
493
- )), visitType === "*" /* Node */ ? visitScope["J" /* Getter */ + nextToken()] = /* @__PURE__ */ ((node) => () => node)(visitScope[lastToken] = visit.previousSibling) : branchesEnabled && visitBranches();
497
+ )), visitType === "*" /* Node */ ? visitScope[nextToken(
498
+ /* read accessor */
499
+ )] = visit.previousSibling : branchesEnabled && visitBranches();
494
500
  return visits.length = resumes.length = 0, effects;
495
501
  }, render.w = () => {
496
502
  walk2(), runResumeEffects(render);
@@ -527,8 +533,7 @@ function _var_resume(id, signal) {
527
533
  return _resume(id, (scope) => (value) => signal(scope, value)), signal;
528
534
  }
529
535
  function _el(id, accessor) {
530
- let getterAccessor = "J" /* Getter */ + decodeAccessor(accessor);
531
- return _resume(id, (scope) => () => scope[getterAccessor]());
536
+ return accessor = decodeAccessor(accessor), _resume(id, (scope) => () => scope[accessor]);
532
537
  }
533
538
 
534
539
  // src/dom/controllable.ts
@@ -1598,6 +1603,7 @@ export {
1598
1603
  _for_to,
1599
1604
  _for_until,
1600
1605
  _hoist,
1606
+ _hoist_resume,
1601
1607
  _html,
1602
1608
  _id,
1603
1609
  _if,