Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Side by Side Diff: utils/apidoc/html_diff_dump.dart

Issue 10389097: Move dart:dom to dart:dom_deprecated (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fixes from review Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « utils/apidoc/html_diff.dart ('k') | utils/apidoc/mdn/extract.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * A script for printing a JSON dump of HTML diff data. In particular, this 6 * A script for printing a JSON dump of HTML diff data. In particular,
7 * lists a map of `dart:dom` methods that have been renamed to `dart:html` 7 * this lists a map of `dart:dom_deprecated` methods that have been
8 * methods without changing their semantics, and `dart:dom` methods that have 8 * renamed to `dart:html` methods without changing their semantics,
9 * been removed in `dart:html`. As a heuristic, a `dart:html` method doesn't 9 * and `dart:dom_deprecated` methods that have been removed in
10 * change the semantics of the corresponding `dart:dom` method if it's the only 10 * `dart:html`. As a heuristic, a `dart:html` method doesn't change
11 * corresponding HTML method and it has the corresponding return type. 11 * the semantics of the corresponding `dart:dom_deprecated` method if
12 * it's the only corresponding HTML method and it has the
13 * corresponding return type.
12 * 14 *
13 * The format of the output is as follows: 15 * The format of the output is as follows:
14 * 16 *
15 * { 17 * {
16 * "renamed": { domName: htmlName, ... }, 18 * "renamed": { domName: htmlName, ... },
17 * "removed": [name, ...] 19 * "removed": [name, ...]
18 * } 20 * }
19 * 21 *
20 * Note that the removed members are listed with the names they would have in 22 * Note that the removed members are listed with the names they would have in
21 * HTML where possible; e.g. `HTMLMediaElement.get:textTracks` is listed as 23 * HTML where possible; e.g. `HTMLMediaElement.get:textTracks` is listed as
(...skipping 23 matching lines...) Expand all
45 /** 47 /**
46 * Returns a string describing the name of a member. If [type] is passed, it's 48 * Returns a string describing the name of a member. If [type] is passed, it's
47 * used in place of the member's real type name. 49 * used in place of the member's real type name.
48 */ 50 */
49 String memberDesc(Member m, [Type type = null]) { 51 String memberDesc(Member m, [Type type = null]) {
50 if (type == null) type = m.declaringType; 52 if (type == null) type = m.declaringType;
51 return '${type.name}.${memberName(m)}'; 53 return '${type.name}.${memberName(m)}';
52 } 54 }
53 55
54 /** 56 /**
55 * Same as [memberDesc], but if [m] is a `dart:dom` type its `dart:html` 57 * Same as [memberDesc], but if [m] is a `dart:dom_deprecated` type
56 * typename is used instead. 58 * its `dart:html` typename is used instead.
57 */ 59 */
58 String htmlishMemberDesc(Member m) { 60 String htmlishMemberDesc(Member m) {
59 var type = m.declaringType; 61 var type = m.declaringType;
60 final htmlTypes = diff.domTypesToHtml[type]; 62 final htmlTypes = diff.domTypesToHtml[type];
61 if (htmlTypes != null && htmlTypes.length == 1) { 63 if (htmlTypes != null && htmlTypes.length == 1) {
62 type = htmlTypes.iterator().next(); 64 type = htmlTypes.iterator().next();
63 } 65 }
64 return memberDesc(m, type); 66 return memberDesc(m, type);
65 } 67 }
66 68
67 bool isGetter(Member member) => member.name.startsWith('get:'); 69 bool isGetter(Member member) => member.name.startsWith('get:');
68 bool isSetter(Member member) => member.name.startsWith('set:'); 70 bool isSetter(Member member) => member.name.startsWith('set:');
69 71
70 /** 72 /**
71 * Add an entry to the map of `dart:dom` names to `dart:html` names if 73 * Add an entry to the map of `dart:dom_deprecated` names to
72 * [domMember] was renamed to [htmlMembers] with the same semantics. 74 * `dart:html` names if [domMember] was renamed to [htmlMembers] with
75 * the same semantics.
73 */ 76 */
74 void maybeAddRename(Map<String, String> renamed, Member domMember, 77 void maybeAddRename(Map<String, String> renamed, Member domMember,
75 Collection<Member> htmlMembers) { 78 Collection<Member> htmlMembers) {
76 if (htmlMembers.length != 1) return; 79 if (htmlMembers.length != 1) return;
77 final htmlMember = htmlMembers.iterator().next(); 80 final htmlMember = htmlMembers.iterator().next();
78 if (memberName(domMember) != memberName(htmlMember) && 81 if (memberName(domMember) != memberName(htmlMember) &&
79 sameType(domMember.returnType, htmlMember.returnType)) { 82 sameType(domMember.returnType, htmlMember.returnType)) {
80 renamed[memberDesc(domMember)] = memberDesc(htmlMember); 83 renamed[memberDesc(domMember)] = memberDesc(htmlMember);
81 } 84 }
82 } 85 }
(...skipping 16 matching lines...) Expand all
99 if (domMember.canSet) { 102 if (domMember.canSet) {
100 maybeAddRename(renamed, domMember.setter, htmlMembers.filter(isSetter)); 103 maybeAddRename(renamed, domMember.setter, htmlMembers.filter(isSetter));
101 } 104 }
102 } else { 105 } else {
103 maybeAddRename(renamed, domMember, htmlMembers); 106 maybeAddRename(renamed, domMember, htmlMembers);
104 return; 107 return;
105 } 108 }
106 }); 109 });
107 110
108 final removed = <Set>[]; 111 final removed = <Set>[];
109 for (final type in world.libraries['dart:dom'].types.getValues()) { 112 for (final type in world.libraries['dart:dom_deprecated'].types.getValues()) {
110 if (type.members.getValues().every((m) => 113 if (type.members.getValues().every((m) =>
111 !diff.domToHtml.containsKey(m))) { 114 !diff.domToHtml.containsKey(m))) {
112 removed.add('${type.name}.*'); 115 removed.add('${type.name}.*');
113 } else { 116 } else {
114 for (final member in type.members.getValues()) { 117 for (final member in type.members.getValues()) {
115 if (!diff.domToHtml.containsKey(member)) { 118 if (!diff.domToHtml.containsKey(member)) {
116 if (member is PropertyMember) { 119 if (member is PropertyMember) {
117 if (member.canGet) removed.add(htmlishMemberDesc(member.getter)); 120 if (member.canGet) removed.add(htmlishMemberDesc(member.getter));
118 if (member.canSet) removed.add(htmlishMemberDesc(member.setter)); 121 if (member.canSet) removed.add(htmlishMemberDesc(member.setter));
119 } else { 122 } else {
120 removed.add(htmlishMemberDesc(member)); 123 removed.add(htmlishMemberDesc(member));
121 } 124 }
122 } else if (member is PropertyMember) { 125 } else if (member is PropertyMember) {
123 final htmlMembers = diff.domToHtml[member]; 126 final htmlMembers = diff.domToHtml[member];
124 if (member.canGet && !htmlMembers.some((m) => m.name.startsWith('get:' ))) { 127 if (member.canGet && !htmlMembers.some((m) => m.name.startsWith('get:' ))) {
125 removed.add(htmlishMemberDesc(member.getter)); 128 removed.add(htmlishMemberDesc(member.getter));
126 } 129 }
127 if (member.canSet && !htmlMembers.some((m) => m.name.startsWith('set:' ))) { 130 if (member.canSet && !htmlMembers.some((m) => m.name.startsWith('set:' ))) {
128 removed.add(htmlishMemberDesc(member.setter)); 131 removed.add(htmlishMemberDesc(member.setter));
129 } 132 }
130 } 133 }
131 } 134 }
132 } 135 }
133 } 136 }
134 137
135 print(JSON.stringify({'renamed': renamed, 'removed': removed})); 138 print(JSON.stringify({'renamed': renamed, 'removed': removed}));
136 } 139 }
OLDNEW
« no previous file with comments | « utils/apidoc/html_diff.dart ('k') | utils/apidoc/mdn/extract.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698