anchor.diff:        // Reading in MDN related json file.
         var root = _Generator._rootDirectory;
         var mdnPath = path.join(root, 'utils/apidoc/mdn/database.json');
  -      Indexable._mdn = JSON.decode(new File(mdnPath).readAsStringSync());
  +      var mdnFile = new File(mdnPath);
  +      if (mdnFile.existsSync()) {
  +        Indexable._mdn = JSON.decode(mdnFile.readAsStringSync());
  +      } else {
  +        _Generator.logger.warning("Cannot find MDN docs expected at $mdnPath");
  +        Indexable._mdn = {};
  +      }
       }
       var domAnnotation = this.annotations.firstWhere(
           (e) => e.mirror.qualifiedName == 'metadata.DomName',
  
positive.code:   }
  
    /// Helper accessor to determine the full pathname of the root of the dart
    /// checkout.
    static String get _rootDirectory {
      var scriptDir = path.absolute(path.dirname(Platform.script.toFilePath()));
      var root = scriptDir;
      while(path.basename(root) != 'dart') {
        root = path.dirname(root);
      }
      return root;
    }
  
    /// Analyzes set of libraries and provides a mirror system which can be used
  
negative.code:   if (libraries.isEmpty) throw new StateError('No Libraries.');
  
    // Finds the root of SDK library based off the location of docgen.
    // We have two different places to look, depending if we're in a development
    // repo or in a built SDK, either sdk or dart-sdk respectively
    var root = _Generator._rootDirectory;
    var sdkRoot = path.normalize(path.absolute(path.join(root, 'sdk')));
    if (!new Directory(sdkRoot).existsSync()) {
      sdkRoot = path.normalize(path.absolute(path.join(root, 'dart-sdk')));
    }
    _Generator.logger.info('SDK Root: ${sdkRoot}');
    return _Generator._analyzeLibraries(libraries, sdkRoot,
        packageRoot: packageRoot);
  