@@ -256,8 +256,11 @@ function reconcile(array, state, anchor, render_fn, flags, get_key) {
256
256
/** @type {import('#client').EachItem | undefined } */
257
257
var item ;
258
258
259
+ /** @type {number } */
260
+ var i ;
261
+
259
262
if ( is_animated ) {
260
- for ( let i = 0 ; i < length ; i += 1 ) {
263
+ for ( i = 0 ; i < length ; i += 1 ) {
261
264
value = array [ i ] ;
262
265
key = get_key ( value , i ) ;
263
266
item = items . get ( key ) ;
@@ -269,7 +272,7 @@ function reconcile(array, state, anchor, render_fn, flags, get_key) {
269
272
}
270
273
}
271
274
272
- for ( let i = 0 ; i < length ; i += 1 ) {
275
+ for ( i = 0 ; i < length ; i += 1 ) {
273
276
value = array [ i ] ;
274
277
key = get_key ( value , i ) ;
275
278
item = items . get ( key ) ;
@@ -305,29 +308,31 @@ function reconcile(array, state, anchor, render_fn, flags, get_key) {
305
308
if ( seen . has ( item ) ) {
306
309
if ( matched . length < stashed . length ) {
307
310
// more efficient to move later items to the front
308
- prev = stashed [ 0 ] . prev ;
309
- const a = get_first_child ( stashed [ 0 ] ) ;
311
+ var start = stashed [ 0 ] ;
312
+ var local_anchor = get_first_child ( start ) ;
313
+ var j ;
314
+
315
+ prev = start . prev ;
310
316
311
- for ( item of matched ) {
312
- move ( item , prev , a ) ;
317
+ for ( j = 0 ; j < matched . length ; j += 1 ) {
318
+ item = matched [ j ] ;
319
+ move ( item , prev , local_anchor ) ;
313
320
prev = item ;
314
321
}
315
322
316
- for ( item of stashed ) {
317
- seen . delete ( item ) ;
323
+ for ( j = 0 ; j < stashed . length ; j += 1 ) {
324
+ seen . delete ( stashed [ j ] ) ;
318
325
}
319
326
320
- current = stashed [ 0 ] ;
327
+ current = start ;
321
328
i -= 1 ;
322
329
323
330
matched = [ ] ;
324
331
stashed = [ ] ;
325
332
} else {
326
333
// more efficient to move earlier items to the back
327
- const a = current ? get_first_child ( current ) : anchor ;
328
-
329
334
seen . delete ( item ) ;
330
- move ( item , prev , a ) ;
335
+ move ( item , prev , current ? get_first_child ( current ) : anchor ) ;
331
336
332
337
prev = item ;
333
338
}
0 commit comments