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

Side by Side Diff: lib/json_info_codec.dart

Issue 2320773002: include output unit in constant info (Closed)
Patch Set: Created 4 years, 3 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
« no previous file with comments | « no previous file | pubspec.yaml » ('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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 /// Converters and codecs for converting between JSON and [Info] classes. 5 /// Converters and codecs for converting between JSON and [Info] classes.
6 part of dart2js_info.info; 6 part of dart2js_info.info;
7 7
8 // TODO(sigmund): add unit tests. 8 // TODO(sigmund): add unit tests.
9 class JsonToAllInfoConverter extends Converter<Map<String, dynamic>, AllInfo> { 9 class JsonToAllInfoConverter extends Converter<Map<String, dynamic>, AllInfo> {
10 Map<String, Info> registry; 10 Map<String, Info> registry;
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 ..code = json['code'] 124 ..code = json['code']
125 ..isConst = json['const'] ?? false 125 ..isConst = json['const'] ?? false
126 ..initializer = parseId(json['initializer']) 126 ..initializer = parseId(json['initializer'])
127 ..closures = (json['children'] as List).map(parseId).toList(); 127 ..closures = (json['children'] as List).map(parseId).toList();
128 } 128 }
129 129
130 ConstantInfo parseConstant(Map json) { 130 ConstantInfo parseConstant(Map json) {
131 ConstantInfo result = parseId(json['id']); 131 ConstantInfo result = parseId(json['id']);
132 return result 132 return result
133 ..code = json['code'] 133 ..code = json['code']
134 ..size = json['size']; 134 ..size = json['size']
135 ..outputUnit = parseId(json['outputUnit']);
135 } 136 }
136 137
137 TypedefInfo parseTypedef(Map json) { 138 TypedefInfo parseTypedef(Map json) {
138 TypedefInfo result = parseId(json['id']); 139 TypedefInfo result = parseId(json['id']);
139 return result 140 return result
140 ..name = json['name'] 141 ..name = json['name']
141 ..parent = parseId(json['parent']) 142 ..parent = parseId(json['parent'])
142 ..type = json['type'] 143 ..type = json['type']
143 ..size = 0; 144 ..size = 0;
144 } 145 }
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 Map _visitDependencyInfo(DependencyInfo info) => 254 Map _visitDependencyInfo(DependencyInfo info) =>
254 {'id': info.target.serializedId, 'mask': info.mask}; 255 {'id': info.target.serializedId, 'mask': info.mask};
255 256
256 Map _visitAllInfoHolding(AllInfo allInfo) { 257 Map _visitAllInfoHolding(AllInfo allInfo) {
257 var map = <String, List>{}; 258 var map = <String, List>{};
258 void helper(CodeInfo info) { 259 void helper(CodeInfo info) {
259 if (info.uses.isEmpty) return; 260 if (info.uses.isEmpty) return;
260 map[info.serializedId] = 261 map[info.serializedId] =
261 info.uses.map((u) => _visitDependencyInfo(u)).toList(); 262 info.uses.map((u) => _visitDependencyInfo(u)).toList();
262 } 263 }
264
263 allInfo.functions.forEach(helper); 265 allInfo.functions.forEach(helper);
264 allInfo.fields.forEach(helper); 266 allInfo.fields.forEach(helper);
265 return map; 267 return map;
266 } 268 }
267 269
268 Map _visitAllInfoDependencies(AllInfo allInfo) { 270 Map _visitAllInfoDependencies(AllInfo allInfo) {
269 var map = <String, List>{}; 271 var map = <String, List>{};
270 allInfo.dependencies.forEach((k, v) { 272 allInfo.dependencies.forEach((k, v) {
271 map[k.serializedId] = v.map((i) => i.serializedId).toList(); 273 map[k.serializedId] = v.map((i) => i.serializedId).toList();
272 }); 274 });
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 visitTypedef(TypedefInfo info) => _visitBasicInfo(info)..['type'] = info.type; 428 visitTypedef(TypedefInfo info) => _visitBasicInfo(info)..['type'] = info.type;
427 429
428 visitOutput(OutputUnitInfo info) => 430 visitOutput(OutputUnitInfo info) =>
429 _visitBasicInfo(info)..['imports'] = info.imports; 431 _visitBasicInfo(info)..['imports'] = info.imports;
430 } 432 }
431 433
432 class AllInfoJsonCodec extends Codec<AllInfo, Map> { 434 class AllInfoJsonCodec extends Codec<AllInfo, Map> {
433 final Converter<AllInfo, Map> encoder = new AllInfoToJsonConverter(); 435 final Converter<AllInfo, Map> encoder = new AllInfoToJsonConverter();
434 final Converter<Map, AllInfo> decoder = new JsonToAllInfoConverter(); 436 final Converter<Map, AllInfo> decoder = new JsonToAllInfoConverter();
435 } 437 }
OLDNEW
« no previous file with comments | « no previous file | pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698