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

Inline is() checks in view elements.

Maciej Gołaszewski 5 лет назад
Родитель
Сommit
a2e70ebc13

+ 10 - 2
packages/ckeditor5-engine/src/view/attributeelement.js

@@ -158,9 +158,17 @@ export default class AttributeElement extends Element {
 	 */
 	is( type, name = null ) {
 		if ( !name ) {
-			return type == 'attributeElement' || type == 'element' || type == this.name || type == 'node';
+			return type === 'attributeElement' || type === 'view:attributeElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === this.name || type === 'view:' + this.name ||
+				type === 'element' || type === 'view:element' ||
+				type === 'node' || type === 'view:node';
 		} else {
-			return ( type == 'attributeElement' && name == this.name ) || ( type == 'element' && name == this.name );
+			return name === this.name && (
+				type === 'attributeElement' || type === 'view:attributeElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === 'element' || type === 'view:element'
+			);
 		}
 	}
 

+ 10 - 2
packages/ckeditor5-engine/src/view/containerelement.js

@@ -84,9 +84,17 @@ export default class ContainerElement extends Element {
 	 */
 	is( type, name = null ) {
 		if ( !name ) {
-			return type == 'containerElement' || type == 'element' || type == this.name || type == 'node';
+			return type === 'containerElement' || type === 'view:containerElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === this.name || type === 'view:' + this.name ||
+				type === 'element' || type === 'view:element' ||
+				type === 'node' || type === 'view:node';
 		} else {
-			return ( type == 'containerElement' && name == this.name ) || ( type == 'element' && name == this.name );
+			return name === this.name && (
+				type === 'containerElement' || type === 'view:containerElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === 'element' || type === 'view:element'
+			);
 		}
 	}
 }

+ 12 - 2
packages/ckeditor5-engine/src/view/editableelement.js

@@ -96,9 +96,19 @@ export default class EditableElement extends ContainerElement {
 	 */
 	is( type, name = null ) {
 		if ( !name ) {
-			return type == 'editableElement' || type == 'containerElement' || type == 'element' || type == this.name || type == 'node';
+			return type === 'editableElement' || type === 'view:editableElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === 'containerElement' || type === 'view:containerElement' ||
+				type === this.name || type === 'view:' + this.name ||
+				type === 'element' || type === 'view:element' ||
+				type === 'node' || type === 'view:node';
 		} else {
-			return name == this.name && ( type == 'editableElement' || type == 'containerElement' || type == 'element' );
+			return name === this.name && (
+				type === 'editableElement' || type === 'view:editableElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === 'containerElement' || type === 'view:containerElement' ||
+				type === 'element' || type === 'view:element'
+			);
 		}
 	}
 

+ 5 - 2
packages/ckeditor5-engine/src/view/element.js

@@ -177,9 +177,12 @@ export default class Element extends Node {
 	 */
 	is( type, name = null ) {
 		if ( !name ) {
-			return type == 'element' || type == this.name || type == 'node' || type == 'view:node';
+			return type === this.name || type === 'view:' + this.name ||
+				type === 'element' || type === 'view:element' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === 'node' || type === 'view:node';
 		} else {
-			return type == 'element' && name == this.name;
+			return name === this.name && ( type === 'element' || type === 'view:element' );
 		}
 	}
 

+ 9 - 2
packages/ckeditor5-engine/src/view/emptyelement.js

@@ -75,9 +75,16 @@ export default class EmptyElement extends Element {
 	 */
 	is( type, name = null ) {
 		if ( !name ) {
-			return type == 'emptyElement' || type == 'element' || type == this.name || type == 'node';
+			return type === 'emptyElement' || type === 'view:emptyElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === this.name || type === 'view:' + this.name ||
+				type === 'element' || type === 'view:element' ||
+				type === 'node' || type === 'view:node';
 		} else {
-			return ( type == 'emptyElement' && name == this.name ) || ( type == 'element' && name == this.name );
+			return name === this.name && (
+				type === 'emptyElement' || type === 'view:emptyElement' ||
+				type === 'element' || type === 'view:element'
+			);
 		}
 	}
 

+ 1 - 1
packages/ckeditor5-engine/src/view/node.js

@@ -339,7 +339,7 @@ export default class Node {
 	 * @returns {Boolean}
 	 */
 	is( type ) {
-		return type == 'node' || type == 'view:node';
+		return type === 'node' || type === 'view:node';
 	}
 
 	/**

+ 14 - 4
packages/ckeditor5-engine/src/view/rooteditableelement.js

@@ -69,11 +69,21 @@ export default class RootEditableElement extends EditableElement {
 	 */
 	is( type, name = null ) {
 		if ( !name ) {
-			return type == 'rootElement' || type == 'editableElement' || type == 'containerElement' || type == 'element' ||
-				type == this.name || type == 'node';
+			return type === 'rootElement' || type === 'view:rootElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === 'editableElement' || type === 'view:editableElement' ||
+				type === 'containerElement' || type === 'view:containerElement' ||
+				type === this.name || type === 'view:' + this.name ||
+				type === 'element' || type === 'view:element' ||
+				type === 'node' || type === 'view:node';
 		} else {
-			return name == this.name &&
-				( type == 'rootElement' || type == 'editableElement' || type == 'containerElement' || type == 'element' );
+			return name === this.name && (
+				type === 'rootElement' || type === 'view:rootElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === 'editableElement' || type === 'view:editableElement' ||
+				type === 'containerElement' || type === 'view:containerElement' ||
+				type === 'element' || type === 'view:element'
+			);
 		}
 	}
 

+ 9 - 2
packages/ckeditor5-engine/src/view/uielement.js

@@ -88,9 +88,16 @@ export default class UIElement extends Element {
 	 */
 	is( type, name = null ) {
 		if ( !name ) {
-			return type == 'uiElement' || type == 'element' || type == this.name || type == 'node';
+			return type === 'uiElement' || type === 'view:uiElement' ||
+				// From super.is(). This is highly utilised method and cannot call super. See ckeditor/ckeditor5#6529.
+				type === this.name || type === 'view:' + this.name ||
+				type === 'element' || type === 'view:element' ||
+				type === 'node' || type === 'view:node';
 		} else {
-			return ( type == 'uiElement' && name == this.name ) || ( type == 'element' && name == this.name );
+			return name === this.name && (
+				type === 'uiElement' || type === 'view:uiElement' ||
+				type === 'element' || type === 'view:element'
+			);
 		}
 	}