styleElement(host, overrideProps) {
    if (disableRuntime) {
      if (overrideProps) {
        if (!StyleInfo.get(host)) {
          StyleInfo.set(host, new StyleInfo(null));
        }
        const styleInfo = /** @type {!StyleInfo} */(StyleInfo.get(host));
        this._mixOverrideStyleProps(styleInfo, overrideProps);
        this.styleElementNativeVariables(host, styleInfo);
      }
      return;
    }
    const styleInfo = StyleInfo.get(host) || this._prepareHost(host);
    // if there is no style info at this point, bail
    if (!styleInfo) {
      return;
    }
    // Only trip the `elementsHaveApplied` flag if a node other that the root document has `applyStyle` called
    if (!this._isRootOwner(host)) {
      this._elementsHaveApplied = true;
    }
    if (overrideProps) {
      this._mixOverrideStyleProps(styleInfo, overrideProps);
    }
    if (!nativeCssVariables) {
      this.styleElementShimVariables(host, styleInfo);
    } else {
      this.styleElementNativeVariables(host, styleInfo);
    }
  }
Apply styles for the given element

@param {!HTMLElement} host
@param {Object=} overrideProps