8
0
Просмотр исходного кода

Use native Map for NamedCollection _models property.

Aleksander Nowodzinski 10 лет назад
Родитель
Сommit
786fba9b1f
1 измененных файлов с 7 добавлено и 7 удалено
  1. 7 7
      packages/ckeditor5-engine/src/namedcollection.js

+ 7 - 7
packages/ckeditor5-engine/src/namedcollection.js

@@ -28,7 +28,7 @@ CKEDITOR.define( [ 'emittermixin', 'ckeditorerror', 'utils' ], function( Emitter
 			 * @property _models
 			 * @private
 			 */
-			this._models = Object.create( null );
+			this._models = new Map();
 		}
 
 		/**
@@ -37,7 +37,7 @@ CKEDITOR.define( [ 'emittermixin', 'ckeditorerror', 'utils' ], function( Emitter
 		 * @property length
 		 */
 		get length() {
-			return Object.keys( this._models ).length;
+			return this._models.size;
 		}
 
 		/**
@@ -50,7 +50,7 @@ CKEDITOR.define( [ 'emittermixin', 'ckeditorerror', 'utils' ], function( Emitter
 		add( model ) {
 			var name = model.name;
 
-			if ( !name || ( name in this._models ) ) {
+			if ( !name || this._models.has( name ) ) {
 				/**
 				 * Model isn't named or such model already exists in this collection
 				 *
@@ -68,7 +68,7 @@ CKEDITOR.define( [ 'emittermixin', 'ckeditorerror', 'utils' ], function( Emitter
 				);
 			}
 
-			this._models[ name ] = model;
+			this._models.set( name, model );
 
 			this.fire( 'add', model );
 		}
@@ -80,7 +80,7 @@ CKEDITOR.define( [ 'emittermixin', 'ckeditorerror', 'utils' ], function( Emitter
 		 * @returns {Model} The requested item.
 		 */
 		get( name ) {
-			var model = this._models[ name ];
+			var model = this._models.get( name );
 
 			if ( !model ) {
 				/**
@@ -105,7 +105,7 @@ CKEDITOR.define( [ 'emittermixin', 'ckeditorerror', 'utils' ], function( Emitter
 		remove( modelOrName ) {
 			var nameGiven = typeof modelOrName == 'string';
 			var name = nameGiven ? modelOrName : modelOrName.name;
-			var model = this._models[ name ];
+			var model = this._models.get( name );
 
 			if ( nameGiven ? !model : ( model !== modelOrName ) ) {
 				/**
@@ -127,7 +127,7 @@ CKEDITOR.define( [ 'emittermixin', 'ckeditorerror', 'utils' ], function( Emitter
 				);
 			}
 
-			delete this._models[ name ];
+			this._models.delete( name );
 
 			this.fire( 'remove', model );