Преглед изворни кода

Replaced Array by a ES6 Set

Oskar Wrobel пре 9 година
родитељ
комит
96941d6fc6
1 измењених фајлова са 6 додато и 8 уклоњено
  1. 6 8
      packages/ckeditor5-utils/src/focustracker.js

+ 6 - 8
packages/ckeditor5-utils/src/focustracker.js

@@ -39,9 +39,9 @@ export default class FocusTracker {
 		 * List of registered elements.
 		 * List of registered elements.
 		 *
 		 *
 		 * @private
 		 * @private
-		 * @member {Array<HTMLElement>} utils.FocusTracker#_elements
+		 * @member {Set<HTMLElement>} utils.FocusTracker#_elements
 		 */
 		 */
-		this._elements = [];
+		this._elements = new Set();
 
 
 		/**
 		/**
 		 * Event loop timeout.
 		 * Event loop timeout.
@@ -66,13 +66,13 @@ export default class FocusTracker {
 	 * @param {HTMLElement} element
 	 * @param {HTMLElement} element
 	 */
 	 */
 	add( element ) {
 	add( element ) {
-		if ( this._elements.indexOf( element ) >= 0 ) {
+		if ( this._elements.has( element ) ) {
 			throw new CKEditorError( 'focusTracker-add-element-already-exist' );
 			throw new CKEditorError( 'focusTracker-add-element-already-exist' );
 		}
 		}
 
 
 		this.listenTo( element, 'focus', () => this._focus( element ), { useCapture: true } );
 		this.listenTo( element, 'focus', () => this._focus( element ), { useCapture: true } );
 		this.listenTo( element, 'blur', () => this._blur(), { useCapture: true } );
 		this.listenTo( element, 'blur', () => this._blur(), { useCapture: true } );
-		this._elements.push( element );
+		this._elements.add( element );
 	}
 	}
 
 
 	/**
 	/**
@@ -85,11 +85,9 @@ export default class FocusTracker {
 			this._blur( element );
 			this._blur( element );
 		}
 		}
 
 
-		const elementIndex = this._elements.indexOf( element );
-
-		if ( elementIndex > -1 ) {
+		if ( this._elements.has( element ) ) {
 			this.stopListening( element );
 			this.stopListening( element );
-			this._elements.slice( elementIndex, 1 );
+			this._elements.delete( element );
 		}
 		}
 	}
 	}