Sfoglia il codice sorgente

Don't access previousSibling that many times to optimize long lists processing.

Piotrek Koszuliński 5 anni fa
parent
commit
cd6f502227
1 ha cambiato i file con 10 aggiunte e 6 eliminazioni
  1. 10 6
      packages/ckeditor5-list/src/converters.js

+ 10 - 6
packages/ckeditor5-list/src/converters.js

@@ -649,30 +649,34 @@ export function modelChangePostFixer( model, writer ) {
 	return applied;
 	return applied;
 
 
 	function _addListToFix( position ) {
 	function _addListToFix( position ) {
-		const prev = position.nodeBefore;
+		const previousNode = position.nodeBefore;
 
 
-		if ( !prev || !prev.is( 'listItem' ) ) {
+		if ( !previousNode || !previousNode.is( 'listItem' ) ) {
 			const item = position.nodeAfter;
 			const item = position.nodeAfter;
 
 
 			if ( item && item.is( 'listItem' ) ) {
 			if ( item && item.is( 'listItem' ) ) {
 				itemToListHead.set( item, item );
 				itemToListHead.set( item, item );
 			}
 			}
 		} else {
 		} else {
-			let listHead = prev;
+			let listHead = previousNode;
 
 
 			if ( itemToListHead.has( listHead ) ) {
 			if ( itemToListHead.has( listHead ) ) {
 				return;
 				return;
 			}
 			}
 
 
-			while ( listHead.previousSibling && listHead.previousSibling.is( 'listItem' ) ) {
-				listHead = listHead.previousSibling;
+			for (
+				let previousSibling = listHead.previousSibling;
+				previousSibling && previousSibling.is( 'listItem' );
+				previousSibling = listHead.previousSibling
+			) {
+				listHead = previousSibling;
 
 
 				if ( itemToListHead.has( listHead ) ) {
 				if ( itemToListHead.has( listHead ) ) {
 					return;
 					return;
 				}
 				}
 			}
 			}
 
 
-			itemToListHead.set( position.nodeBefore, listHead );
+			itemToListHead.set( previousNode, listHead );
 		}
 		}
 	}
 	}