code: function(overlay) {
              var mgr = this;
  
              if (!overlay.blurEvent) {
                  overlay.blurEvent = overlay.createEvent("blur");
                  overlay.blurEvent.signature = CustomEvent.LIST;
                  overlay.focusEvent._managed = true;
              } else {
                  overlay.blurEvent.subscribe(mgr._onOverlayBlurHandler, overlay, mgr);
              }
  
              if (!overlay.blur) {
                  overlay.blur = function () {
                      if (mgr._manageBlur(this)) {
                          this.blurEvent.fire();
                      }
                  };
                  overlay.blur._managed = true;
              }
  
              overlay.hideEvent.subscribe(overlay.blur);
          }
docs: Subscribes to the Overlay based instance's blurEvent to allow the OverlayManager to
  monitor blur state.
  
  If the instance already has a blurEvent (e.g. Menu), OverlayManager will subscribe
  to the existing blurEvent, however if a blurEvent or blur method does not exist
  on the instance, the _bindBlur method will add them, and the blur method
  update the OverlayManager's state directly.
  
  @method _bindBlur
  @param {Overlay} overlay The overlay for which blur needs to be managed
  @protected