@@ -324,7 +324,7 @@ function mapChildren<TEl extends object>(
324324 return children
325325}
326326
327- let element_set = new Set < any > ( )
327+ let els_seen = new Set < any > ( )
328328
329329const make_el_json = < TEl extends object > ( el : TEl , eli : ElementInterface < TEl > ) : Mapped . Owner => ( {
330330 id : get_id_el ( el ) ,
@@ -398,127 +398,120 @@ function mapOwner<TEl extends object>(
398398 // elements might already be resolved when mapping components
399399 resolved_els ??= resolveElements ( owner . value , config . eli )
400400
401- let elements_stack_arr = [ resolved_els ] as ( ElementChildren < TEl > ) [ ]
402- let elements_stack_idx = [ 0 ]
403- let elements_stack_owner = [ mapped ]
404- let elements_stack_len = 1
401+ let stack_els_arr : ElementChildren < TEl > [ ] = [ resolved_els ]
402+ let stack_els_idx = [ 0 ]
403+ let stack_els_own = [ mapped ]
404+ let stack_els_len = 1
405405
406- let children_stack_arr = [ mapped . children ]
407- let children_stack_idx = [ 0 ]
408- let children_stack_len = 1
406+ let stack_child_arr = [ mapped . children ]
407+ let stack_child_idx = [ 0 ]
408+ let stack_child_len = 1
409409
410- while ( children_stack_len > 0 ) {
410+ while ( stack_child_len > 0 ) {
411411
412- let children = children_stack_arr [ children_stack_len - 1 ] !
413- let child_idx = children_stack_idx [ children_stack_len - 1 ] !
412+ let child_arr = stack_child_arr [ stack_child_len - 1 ] !
413+ let child_idx = stack_child_idx [ stack_child_len - 1 ] !
414414
415- if ( child_idx >= children . length ) {
416- children_stack_len -= 1
415+ if ( child_idx >= child_arr . length ) {
416+ stack_child_len -= 1
417417 continue
418418 }
419419
420- children_stack_idx [ children_stack_len - 1 ] ! += 1
420+ stack_child_idx [ stack_child_len - 1 ] ! += 1
421421
422- let child = children [ child_idx ] !
422+ let child = child_arr [ child_idx ] !
423423
424424 /* Other children are already in mapped children so will be skipped */
425425 if ( child . type !== NodeType . Element ) {
426- children_stack_arr [ children_stack_len ] = child . children
427- children_stack_idx [ children_stack_len ] = 0
428- children_stack_len += 1
426+ stack_child_arr [ stack_child_len ] = child . children
427+ stack_child_idx [ stack_child_len ] = 0
428+ stack_child_len += 1
429429 continue
430430 }
431431
432432 // Don't go over added element children
433433 // TODO: add children cap stack
434- if ( children_stack_len - 1 === 0 ) {
434+ if ( stack_child_len - 1 === 0 ) {
435435 continue
436436 }
437437
438- while ( elements_stack_len > 0 ) {
438+ while ( stack_els_len > 0 ) {
439439
440- let elements = elements_stack_arr [ elements_stack_len - 1 ] !
441- let el_idx = elements_stack_idx [ elements_stack_len - 1 ] !
442- let el_owner = elements_stack_owner [ elements_stack_len - 1 ] !
440+ let el_arr = stack_els_arr [ stack_els_len - 1 ] !
441+ let el_idx = stack_els_idx [ stack_els_len - 1 ] !
442+ let el_own = stack_els_own [ stack_els_len - 1 ] !
443443
444- if ( el_idx >= elements . length ) {
445- elements_stack_len -= 1
444+ if ( el_idx >= el_arr . length ) {
445+ stack_els_len -= 1
446446 continue
447447 }
448448
449- elements_stack_idx [ elements_stack_len - 1 ] ! += 1
449+ stack_els_idx [ stack_els_len - 1 ] ! += 1
450450
451- let el = elements [ el_idx ] !
452- let el_id = get_id_el ( el )
451+ let el = el_arr [ el_idx ] !
453452
454453 // Child has this element
455- if ( el_id === child . id ) {
454+ if ( get_id_el ( el ) === child . id ) {
456455 /*
457456 Push child to the owner
458457 and previous ones that were not pushed yet
459458 */
460- for ( let i = 0 ; i < children_stack_idx [ 0 ] ! ; i ++ ) {
461- el_owner . children . push ( children_stack_arr [ 0 ] ! [ i ] ! )
462- }
463- children_stack_arr [ 0 ] ! . splice ( 0 , children_stack_idx [ 0 ] )
464- children_stack_idx [ 0 ] = 0
465- children_stack_len = 1
459+ el_own . children . push ( ...mapped . children . splice ( 0 , stack_child_idx [ 0 ] ) )
460+ stack_child_idx [ 0 ] = 0
461+ stack_child_len = 1
466462
467463 // Skip remaining elements from the child
468- for ( let ci = child_idx + 1 ; ci < children . length ; ci ++ ) {
469- let ei = elements_stack_idx [ elements_stack_len - 1 ] !
464+ for ( let ci = child_idx + 1 ; ci < child_arr . length ; ci ++ ) {
465+ let ei = stack_els_idx [ stack_els_len - 1 ] !
470466
471- if ( ei >= elements . length ||
472- children [ ci ] ! . id !== get_id_el ( elements [ ei ] ! )
473- ) {
467+ if ( ei >= el_arr . length || child_arr [ ci ] ! . id !== get_id_el ( el_arr [ ei ] ! ) )
474468 break
475- }
476469
477- elements_stack_idx [ elements_stack_len - 1 ] ! += 1
470+ stack_els_idx [ stack_els_len - 1 ] ! += 1
478471 }
479472
480473 break
481474 }
482475
483476 /* Not seen yet */
484- if ( ! element_set . has ( el ) ) {
477+ if ( ! els_seen . has ( el ) ) {
485478 let el_json = make_el_json ( el , config . eli )
486- el_owner . children . push ( el_json )
487- element_set . add ( el )
479+ el_own . children . push ( el_json )
480+ els_seen . add ( el )
488481
489- elements_stack_arr [ elements_stack_len ] = config . eli . getChildren ( el )
490- elements_stack_idx [ elements_stack_len ] = 0
491- elements_stack_owner [ elements_stack_len ] = el_json
492- elements_stack_len += 1
482+ stack_els_arr [ stack_els_len ] = config . eli . getChildren ( el )
483+ stack_els_idx [ stack_els_len ] = 0
484+ stack_els_own [ stack_els_len ] = el_json
485+ stack_els_len += 1
493486 }
494487 }
495488 }
496489
497490 // append remaining elements to children
498- while ( elements_stack_len > 0 ) {
499- let elements = elements_stack_arr [ elements_stack_len - 1 ] !
500- let idx = elements_stack_idx [ elements_stack_len - 1 ] !
501- let el_owner = elements_stack_owner [ elements_stack_len - 1 ] !
491+ while ( stack_els_len > 0 ) {
492+ let el_arr = stack_els_arr [ stack_els_len - 1 ] !
493+ let el_idx = stack_els_idx [ stack_els_len - 1 ] !
494+ let el_own = stack_els_own [ stack_els_len - 1 ] !
502495
503- if ( idx >= elements . length ) {
504- elements_stack_len -= 1
496+ if ( el_idx >= el_arr . length ) {
497+ stack_els_len -= 1
505498 continue
506499 }
507500
508- elements_stack_idx [ elements_stack_len - 1 ] ! += 1
501+ stack_els_idx [ stack_els_len - 1 ] ! += 1
509502
510- let el = elements [ idx ] !
503+ let el = el_arr [ el_idx ] !
511504
512- if ( element_set . has ( el ) ) continue
505+ if ( els_seen . has ( el ) ) continue
513506
514507 let el_json = make_el_json ( el , config . eli )
515- el_owner . children . push ( el_json )
516- element_set . add ( el )
508+ el_own . children . push ( el_json )
509+ els_seen . add ( el )
517510
518- elements_stack_arr [ elements_stack_len ] = config . eli . getChildren ( el )
519- elements_stack_idx [ elements_stack_len ] = 0
520- elements_stack_owner [ elements_stack_len ] = el_json
521- elements_stack_len += 1
511+ stack_els_arr [ stack_els_len ] = config . eli . getChildren ( el )
512+ stack_els_idx [ stack_els_len ] = 0
513+ stack_els_own [ stack_els_len ] = el_json
514+ stack_els_len += 1
522515 }
523516 }
524517
@@ -533,7 +526,7 @@ export const walkSolidTree = /*#__PURE__*/ untrackedCallback(function <TEl exten
533526 const r = mapOwner ( owner , null , config ) !
534527
535528 if ( config . mode === TreeWalkerMode . DOM ) {
536- element_set . clear ( )
529+ els_seen . clear ( )
537530 }
538531
539532 return r
0 commit comments