+ if ( !$fromRev ) {
+ $title = Title::newFromLinkTarget( $toRelRev->getPageAsLinkTarget() );
+ $this->addWarning( [
+ 'apiwarn-compare-no-prev',
+ wfEscapeWikiText( $title->getPrefixedText() ),
+ $toRelRev->getId()
+ ] );
+
+ // (T203433) Create an empty dummy revision as the "previous".
+ // The main slot has to exist, the rest will be handled by DifferenceEngine.
+ $fromRev = $this->revisionStore->newMutableRevisionFromArray( [
+ 'title' => $title ?: Title::makeTitle( NS_SPECIAL, 'Badtitle/' . __METHOD__ )
+ ] );
+ $fromRev->setContent(
+ SlotRecord::MAIN,
+ $toRelRev->getContent( SlotRecord::MAIN, RevisionRecord::RAW )
+ ->getContentHandler()
+ ->makeEmptyContent()
+ );
+ }