protected function _process($options = [])
    {
        $suite = $this->suite();
        if ($suite->root()->focused() && !$this->focused()) {
            return;
        }

        $this->_passed = true;

        if ($this->excluded()) {
            $this->log()->type('excluded');
            $this->summary()->log($this->log());
            $this->report('specEnd', $this->log());
            return;
        }
        $result = null;

        $suite::push($this);

        if ($suite::$PHP >= 7 && !defined('HHVM_VERSION')) {
            try {
                $this->_blockStart();
                try {
                    $result = $this->_execute();
                } catch (Throwable $exception) {
                    $this->_exception($exception);
                }
                $this->_blockEnd();
            } catch (Throwable $exception) {
                $this->_exception($exception, true);
                $this->_blockEnd(!$exception instanceof SkipException);
            }
        } else {
            try {
                $this->_blockStart();
                try {
                    $result = $this->_execute();
                } catch (Exception $exception) {
                    $this->_exception($exception);
                }
                $this->_blockEnd();
            } catch (Exception $exception) {
                $this->_exception($exception, true);
                $this->_blockEnd(!$exception instanceof SkipException);
            }
        }

        $suite::pop();

        return $this->_return = $result;
    }