| Index: utils/apidoc/html_diff.dart
 | 
| diff --git a/utils/apidoc/html_diff.dart b/utils/apidoc/html_diff.dart
 | 
| index 37ac54563d7bd9eba61ec120e1d20070cfc6226b..34912e09154f1721df2a73c96859ff07e2f31b87 100644
 | 
| --- a/utils/apidoc/html_diff.dart
 | 
| +++ b/utils/apidoc/html_diff.dart
 | 
| @@ -51,6 +51,9 @@ class HtmlDiff {
 | 
|  
 | 
|    final CommentMap comments;
 | 
|  
 | 
| +  /** If true, then print warning messages. */
 | 
| +  final bool _printWarnings;
 | 
| +
 | 
|    static Library dom;
 | 
|  
 | 
|    /**
 | 
| @@ -65,13 +68,20 @@ class HtmlDiff {
 | 
|      dom = world.libraries['dart:dom'];
 | 
|    }
 | 
|  
 | 
| -  HtmlDiff() :
 | 
| +  HtmlDiff([bool printWarnings = false]) : 
 | 
| +    _printWarnings = printWarnings, 
 | 
|      domToHtml = new Map<Member, Set<Member>>(),
 | 
|      htmlToDom = new Map<Member, Set<Member>>(),
 | 
|      domTypesToHtml = new Map<Type, Set<Type>>(),
 | 
|      htmlTypesToDom = new Map<Type, Set<Type>>(),
 | 
|      comments = new CommentMap();
 | 
|  
 | 
| +  void warn(String s) {
 | 
| +    if (_printWarnings) {
 | 
| +      print('Warning: ' + s);
 | 
| +    }
 | 
| +  }
 | 
| +
 | 
|    /**
 | 
|     * Computes the `dart:dom` to `dart:html` mapping, and places it in
 | 
|     * [domToHtml], [htmlToDom], [domTypesToHtml], and [htmlTypesToDom]. Before
 | 
| @@ -109,7 +119,7 @@ class HtmlDiff {
 | 
|  
 | 
|      var domMembers = htmlToDomMembers(htmlMember, domTypes);
 | 
|      if (htmlMember == null && !domMembers.isEmpty()) {
 | 
| -      print('Warning: dart:html member ${htmlMember.declaringType.name}.' +
 | 
| +      warn('dart:html member ${htmlMember.declaringType.name}.' +
 | 
|            '${htmlMember.name} has no corresponding dart:html member.');
 | 
|      }
 | 
|  
 | 
| @@ -132,7 +142,7 @@ class HtmlDiff {
 | 
|        if (domNames.length == 1 && domNames[0] == 'none') return [];
 | 
|        return map(domNames, (domName) {
 | 
|          final domType = dom.types[domName];
 | 
| -        if (domType == null) print('Warning: no dart:dom type named $domName');
 | 
| +        if (domType == null) warn('no dart:dom type named $domName');
 | 
|          return domType;
 | 
|        });
 | 
|      }
 | 
| @@ -156,11 +166,11 @@ class HtmlDiff {
 | 
|          var nameMembers = _membersFromName(name, domTypes);
 | 
|          if (nameMembers.isEmpty()) {
 | 
|            if (name.contains('.')) {
 | 
| -            print('Warning: no member $name');
 | 
| +            warn('no member $name');
 | 
|            } else {
 | 
|              final options = Strings.join(
 | 
|                  map(domTypes, (t) => "${t.name}.$name"), ' or ');
 | 
| -            print('Warning: no member $options');
 | 
| +            warn('no member $options');
 | 
|            }
 | 
|          }
 | 
|          members.addAll(nameMembers);
 | 
| @@ -181,7 +191,7 @@ class HtmlDiff {
 | 
|    Set<Member> _membersFromName(String name, List<Type> defaultTypes) {
 | 
|      if (!name.contains('.', 0)) {
 | 
|        if (defaultTypes.isEmpty()) {
 | 
| -        print('Warning: no default type for ${name}');
 | 
| +        warn('no default type for ${name}');
 | 
|          return new Set();
 | 
|        }
 | 
|        final members = new Set<Member>();
 | 
| @@ -193,7 +203,7 @@ class HtmlDiff {
 | 
|  
 | 
|      final splitName = name.split('.');
 | 
|      if (splitName.length != 2) {
 | 
| -      print('Warning: invalid member name ${name}');
 | 
| +      warn('invalid member name ${name}');
 | 
|        return new Set();
 | 
|      }
 | 
|  
 | 
| 
 |