/**
  * Store the current overlay (as it doesn't directly apply to the new scope
  * that's being pushed). We want to store the overlay against the next item
  * "up" in the stack (hence upIndex), rather than the current item, because
  * SSViewer_Scope::obj() has already been called and pushed the new item to
  * the stack by this point
  * @return SSViewer_Scope
  */
 public function pushScope()
 {
     $scope = parent::pushScope();
     $upIndex = $this->getUpIndex();
     if ($upIndex !== null) {
         $itemStack = $this->getItemStack();
         $itemStack[$upIndex][SSViewer_Scope::ITEM_OVERLAY] = $this->overlay;
         $this->setItemStack($itemStack);
         $this->overlay = array();
     }
     return $scope;
 }