@@ -59,12 +59,12 @@ export function mapArray<T, U>(
59
59
onCleanup ( ( ) => dispose ( disposers ) ) ;
60
60
return ( ) => {
61
61
let newItems = list ( ) || [ ] ,
62
+ newLen = newItems . length ,
62
63
i : number ,
63
64
j : number ;
64
65
( newItems as any ) [ $TRACK ] ; // top level tracking
65
66
return untrack ( ( ) => {
66
- let newLen = newItems . length ,
67
- newIndices : Map < T | typeof FALLBACK , number > ,
67
+ let newIndices : Map < T | typeof FALLBACK , number > ,
68
68
newIndicesNext : number [ ] ,
69
69
temp : U [ ] ,
70
70
tempdisposers : ( ( ) => void ) [ ] ,
@@ -196,10 +196,11 @@ export function indexArray<T, U>(
196
196
197
197
onCleanup ( ( ) => dispose ( disposers ) ) ;
198
198
return ( ) => {
199
- const newItems = list ( ) || [ ] ;
199
+ const newItems = list ( ) || [ ] ,
200
+ newLen = newItems . length ;
200
201
( newItems as any ) [ $TRACK ] ; // top level tracking
201
202
return untrack ( ( ) => {
202
- if ( newItems . length === 0 ) {
203
+ if ( newLen === 0 ) {
203
204
if ( len !== 0 ) {
204
205
dispose ( disposers ) ;
205
206
disposers = [ ] ;
@@ -226,7 +227,7 @@ export function indexArray<T, U>(
226
227
len = 0 ;
227
228
}
228
229
229
- for ( i = 0 ; i < newItems . length ; i ++ ) {
230
+ for ( i = 0 ; i < newLen ; i ++ ) {
230
231
if ( i < items . length && items [ i ] !== newItems [ i ] ) {
231
232
signals [ i ] ( ( ) => newItems [ i ] ) ;
232
233
} else if ( i >= items . length ) {
@@ -236,7 +237,7 @@ export function indexArray<T, U>(
236
237
for ( ; i < items . length ; i ++ ) {
237
238
disposers [ i ] ( ) ;
238
239
}
239
- len = signals . length = disposers . length = newItems . length ;
240
+ len = signals . length = disposers . length = newLen ;
240
241
items = newItems . slice ( 0 ) ;
241
242
return ( mapped = mapped . slice ( 0 , len ) ) ;
242
243
} ) ;
0 commit comments