code: function _Overlay_baseOverlayConstructor(element, options) {
  
                      this._disposed = false;
  
                      // Make sure there's an input element
                      if (!element) {
                          element = _Global.document.createElement("div");
                      }
  
                      // Check to make sure we weren't duplicated
                      var overlay = element.winControl;
                      if (overlay) {
                          throw new _ErrorFromName("WinJS.UI._Overlay.DuplicateConstruction", strings.duplicateConstruction);
                      }
  
                      if (!this._element) {
                          this._element = element;
                      }
  
                      if (!this._element.hasAttribute("tabIndex")) {
                          this._element.tabIndex = -1;
                      }
  
                      this._sticky = false;
                      this._doNext = "";
  
                      this._element.style.visibility = "hidden";
                      this._element.style.opacity = 0;
  
                      // Remember ourselves
                      element.winControl = this;
  
                      // Attach our css class
                      _ElementUtilities.addClass(this._element, _Constants.overlayClass);
                      _ElementUtilities.addClass(this._element, "win-disposable");
  
                      // We don't want to be selectable, set UNSELECTABLE
                      var unselectable = this._element.getAttribute("unselectable");
                      if (unselectable === null || unselectable === undefined) {
                          this._element.setAttribute("unselectable", "on");
                      }
  
                      // Base animation is popIn/popOut
                      this._currentAnimateIn = this._baseAnimateIn;
                      this._currentAnimateOut = this._baseAnimateOut;
                      this._animationPromise = Promise.as();
  
                      // Command Animations to Queue
                      this._queuedToShow = [];
                      this._queuedToHide = [];
                      this._queuedCommandAnimation = false;
  
                      if (options) {
                          _Control.setOptions(this, options);
                      }
  
                      // Make sure _Overlay event handlers are hooked up (this aids light dismiss)
                      _Overlay._globalEventListeners.initialize();
                  }
docs: Functions/properties