removeAttribute(attr, propertyName) {
    var component = this.components[attr];

    // Remove component.
    if (component && propertyName === undefined) {
      this.removeComponent(attr, true);
    }

    // Reset component property value.
    if (component && propertyName !== undefined) {
      component.resetProperty(propertyName);
      return;
    }

    // Remove mixins.
    if (attr === 'mixin') {
      this.mixinUpdate('');
    }
    window.HTMLElement.prototype.removeAttribute.call(this, attr);
  }
If `attr` is a component name, detach the component from the entity.

If `propertyName` is given, reset the component property value to its default.

@param {string} attr - Attribute name, which could also be a component name.
@param {string} propertyName - Component prop name, if resetting an individual prop.