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

Side by Side Diff: tests/compiler/dart2js/sourcemaps/html_parts.dart

Issue 2345083003: dart2js: run dartfmt on tests (Closed)
Patch Set: revert another multipart test 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
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 library sourcemap.html_parts; 5 library sourcemap.html_parts;
6 6
7 import 'sourcemap_html_helper.dart'; 7 import 'sourcemap_html_helper.dart';
8 8
9 class Annotation { 9 class Annotation {
10 final id; 10 final id;
11 final int codeOffset; 11 final int codeOffset;
12 final String title; 12 final String title;
13 final data; 13 final data;
14 14
15 Annotation(this.id, this.codeOffset, this.title, {this.data}); 15 Annotation(this.id, this.codeOffset, this.title, {this.data});
16 } 16 }
17 17
18 typedef bool AnnotationFilter(Annotation annotation); 18 typedef bool AnnotationFilter(Annotation annotation);
19 typedef AnnotationData AnnotationDataFunction( 19 typedef AnnotationData AnnotationDataFunction(Iterable<Annotation> annotations,
20 Iterable<Annotation> annotations,
21 {bool forSpan}); 20 {bool forSpan});
22 typedef LineData LineDataFunction(lineAnnotation); 21 typedef LineData LineDataFunction(lineAnnotation);
23 22
24 bool includeAllAnnotation(Annotation annotation) => true; 23 bool includeAllAnnotation(Annotation annotation) => true;
25 24
26 class LineData { 25 class LineData {
27 final String lineClass; 26 final String lineClass;
28 final String lineNumberClass; 27 final String lineNumberClass;
29 28
30 const LineData({ 29 const LineData({this.lineClass: 'line', this.lineNumberClass: 'lineNumber'});
31 this.lineClass: 'line',
32 this.lineNumberClass: 'lineNumber'});
33 } 30 }
34 31
35 class AnnotationData { 32 class AnnotationData {
36 final String tag; 33 final String tag;
37 final Map<String, String> properties; 34 final Map<String, String> properties;
38 35
39 const AnnotationData({ 36 const AnnotationData(
40 this.tag: 'a', 37 {this.tag: 'a', this.properties: const <String, String>{}});
41 this.properties: const <String, String>{}});
42 38
43 int get hashCode => tag.hashCode * 13 + properties.hashCode * 19; 39 int get hashCode => tag.hashCode * 13 + properties.hashCode * 19;
44 40
45 bool operator ==(other) { 41 bool operator ==(other) {
46 if (identical(this, other)) return true; 42 if (identical(this, other)) return true;
47 if (other is! AnnotationData) return false; 43 if (other is! AnnotationData) return false;
48 return tag == other.tag && 44 return tag == other.tag &&
49 properties.length == other.properties.length && 45 properties.length == other.properties.length &&
50 properties.keys.every((k) => properties[k] == other.properties[k]); 46 properties.keys.every((k) => properties[k] == other.properties[k]);
51 } 47 }
52 } 48 }
53 49
54 AnnotationDataFunction createAnnotationDataFunction( 50 AnnotationDataFunction createAnnotationDataFunction(
55 {CssColorScheme colorScheme: const SingleColorScheme(), 51 {CssColorScheme colorScheme: const SingleColorScheme(),
56 ElementScheme elementScheme: const ElementScheme()}) { 52 ElementScheme elementScheme: const ElementScheme()}) {
57 return (Iterable<Annotation> annotations, {bool forSpan}) { 53 return (Iterable<Annotation> annotations, {bool forSpan}) {
58 return getAnnotationDataFromSchemes( 54 return getAnnotationDataFromSchemes(annotations,
59 annotations,
60 forSpan: forSpan, 55 forSpan: forSpan,
61 colorScheme: colorScheme, 56 colorScheme: colorScheme,
62 elementScheme: elementScheme); 57 elementScheme: elementScheme);
63 }; 58 };
64 } 59 }
65 60
66 LineData getDefaultLineData(data) => const LineData(); 61 LineData getDefaultLineData(data) => const LineData();
67 62
68 AnnotationData getAnnotationDataFromSchemes( 63 AnnotationData getAnnotationDataFromSchemes(Iterable<Annotation> annotations,
69 Iterable<Annotation> annotations,
70 {bool forSpan, 64 {bool forSpan,
71 CssColorScheme colorScheme: const SingleColorScheme(), 65 CssColorScheme colorScheme: const SingleColorScheme(),
72 ElementScheme elementScheme: const ElementScheme()}) { 66 ElementScheme elementScheme: const ElementScheme()}) {
73 if (colorScheme.showLocationAsSpan != forSpan) return null; 67 if (colorScheme.showLocationAsSpan != forSpan) return null;
74 Map<String, String> data = <String, String>{}; 68 Map<String, String> data = <String, String>{};
75 var id; 69 var id;
76 if (annotations.length == 1) { 70 if (annotations.length == 1) {
77 Annotation annotation = annotations.single; 71 Annotation annotation = annotations.single;
78 if (annotation != null) { 72 if (annotation != null) {
79 id = annotation.id; 73 id = annotation.id;
80 data['style'] = colorScheme.singleLocationToCssColor(id); 74 data['style'] = colorScheme.singleLocationToCssColor(id);
81 data['title'] = annotation.title; 75 data['title'] = annotation.title;
82 } 76 }
83 } else { 77 } else {
84 id = annotations.first.id; 78 id = annotations.first.id;
85 List ids = []; 79 List ids = [];
86 for (Annotation annotation in annotations) { 80 for (Annotation annotation in annotations) {
87 ids.add(annotation.id); 81 ids.add(annotation.id);
88 } 82 }
89 data['style'] = colorScheme.multiLocationToCssColor(ids); 83 data['style'] = colorScheme.multiLocationToCssColor(ids);
90 data['title'] = annotations.map((l) => l.title).join(','); 84 data['title'] = annotations.map((l) => l.title).join(',');
91 } 85 }
92 if (id != null) { 86 if (id != null) {
93 Set ids = annotations.map((l) => l.id).toSet(); 87 Set ids = annotations.map((l) => l.id).toSet();
94 data['tag'] = 'a'; 88 data['tag'] = 'a';
95 data['name'] = elementScheme.getName(id, ids); 89 data['name'] = elementScheme.getName(id, ids);
96 data['href'] = elementScheme.getHref(id, ids); 90 data['href'] = elementScheme.getHref(id, ids);
97 data['onclick'] = elementScheme.onClick(id, ids); 91 data['onclick'] = elementScheme.onClick(id, ids);
98 data['onmouseover'] = elementScheme.onMouseOver(id, ids); 92 data['onmouseover'] = elementScheme.onMouseOver(id, ids);
99 data['onmouseout'] = elementScheme.onMouseOut(id, ids); 93 data['onmouseout'] = elementScheme.onMouseOut(id, ids);
100 return new AnnotationData( 94 return new AnnotationData(properties: data);
101 properties: data);
102 } 95 }
103 return null; 96 return null;
104 } 97 }
105 98
106 class HtmlPrintContext { 99 class HtmlPrintContext {
107 final int lineNoWidth; 100 final int lineNoWidth;
108 final bool usePre; 101 final bool usePre;
109 final AnnotationFilter includeAnnotation; 102 final AnnotationFilter includeAnnotation;
110 final AnnotationDataFunction getAnnotationData; 103 final AnnotationDataFunction getAnnotationData;
111 final LineDataFunction getLineData; 104 final LineDataFunction getLineData;
112 105
113 HtmlPrintContext({ 106 HtmlPrintContext(
114 this.lineNoWidth, 107 {this.lineNoWidth,
115 this.usePre: true, 108 this.usePre: true,
116 this.includeAnnotation: includeAllAnnotation, 109 this.includeAnnotation: includeAllAnnotation,
117 this.getAnnotationData: getAnnotationDataFromSchemes, 110 this.getAnnotationData: getAnnotationDataFromSchemes,
118 this.getLineData: getDefaultLineData}); 111 this.getLineData: getDefaultLineData});
119 112
120 HtmlPrintContext from({ 113 HtmlPrintContext from(
121 int lineNoWidth, 114 {int lineNoWidth,
122 bool usePre, 115 bool usePre,
123 AnnotationFilter includeAnnotation, 116 AnnotationFilter includeAnnotation,
124 AnnotationDataFunction getAnnotationData, 117 AnnotationDataFunction getAnnotationData,
125 LineDataFunction getLineData}) { 118 LineDataFunction getLineData}) {
126 return new HtmlPrintContext( 119 return new HtmlPrintContext(
127 lineNoWidth: lineNoWidth ?? this.lineNoWidth, 120 lineNoWidth: lineNoWidth ?? this.lineNoWidth,
128 usePre: usePre ?? this.usePre, 121 usePre: usePre ?? this.usePre,
129 includeAnnotation: includeAnnotation ?? this.includeAnnotation, 122 includeAnnotation: includeAnnotation ?? this.includeAnnotation,
130 getAnnotationData: getAnnotationData ?? this.getAnnotationData, 123 getAnnotationData: getAnnotationData ?? this.getAnnotationData,
131 getLineData: getLineData ?? this.getLineData); 124 getLineData: getLineData ?? this.getLineData);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 static HtmlText fromJson(Map json, JsonStrategy strategy) { 224 static HtmlText fromJson(Map json, JsonStrategy strategy) {
232 return new HtmlText(json['text']); 225 return new HtmlText(json['text']);
233 } 226 }
234 } 227 }
235 228
236 class TagPart implements HtmlPart { 229 class TagPart implements HtmlPart {
237 final String tag; 230 final String tag;
238 final Map<String, String> properties; 231 final Map<String, String> properties;
239 final List<HtmlPart> content; 232 final List<HtmlPart> content;
240 233
241 TagPart( 234 TagPart(this.tag,
242 this.tag, 235 {this.properties: const <String, String>{},
243 {this.properties: const <String, String>{}, 236 this.content: const <HtmlPart>[]});
244 this.content: const <HtmlPart>[]});
245 237
246 HtmlPartKind get kind => HtmlPartKind.TAG; 238 HtmlPartKind get kind => HtmlPartKind.TAG;
247 239
248 @override 240 @override
249 void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) { 241 void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {
250 buffer.write('<$tag'); 242 buffer.write('<$tag');
251 properties.forEach((String key, String value) { 243 properties.forEach((String key, String value) {
252 if (value != null) { 244 if (value != null) {
253 buffer.write(' $key="${value}"'); 245 buffer.write(' $key="${value}"');
254 } 246 }
255 }); 247 });
256 buffer.write('>'); 248 buffer.write('>');
257 for (HtmlPart child in content) { 249 for (HtmlPart child in content) {
258 child.printHtmlOn(buffer, context); 250 child.printHtmlOn(buffer, context);
259 } 251 }
260 buffer.write('</$tag>'); 252 buffer.write('</$tag>');
261 } 253 }
262 254
263 toJson(JsonStrategy strategy) { 255 toJson(JsonStrategy strategy) {
264 return { 256 return {
265 'kind': kind.index, 257 'kind': kind.index,
266 'tag': tag, 258 'tag': tag,
267 'properties': properties, 259 'properties': properties,
268 'content': content.map((p) => p.toJson(strategy)).toList()}; 260 'content': content.map((p) => p.toJson(strategy)).toList()
261 };
269 } 262 }
270 263
271 static TagPart fromJson(Map json, JsonStrategy strategy) { 264 static TagPart fromJson(Map json, JsonStrategy strategy) {
272 return new TagPart( 265 return new TagPart(json['tag'],
273 json['tag'],
274 properties: json['properties'], 266 properties: json['properties'],
275 content: json['content'].map(HtmlPart.fromJson).toList()); 267 content: json['content'].map(HtmlPart.fromJson).toList());
276 } 268 }
277 } 269 }
278 270
279 class HtmlLine implements HtmlPart { 271 class HtmlLine implements HtmlPart {
280 final List<HtmlPart> htmlParts = <HtmlPart>[]; 272 final List<HtmlPart> htmlParts = <HtmlPart>[];
281 273
282 HtmlPartKind get kind => HtmlPartKind.LINE; 274 HtmlPartKind get kind => HtmlPartKind.LINE;
283 275
284 @override 276 @override
285 void printHtmlOn(StringBuffer htmlBuffer, HtmlPrintContext context) { 277 void printHtmlOn(StringBuffer htmlBuffer, HtmlPrintContext context) {
286 for (HtmlPart part in htmlParts) { 278 for (HtmlPart part in htmlParts) {
287 part.printHtmlOn(htmlBuffer, context); 279 part.printHtmlOn(htmlBuffer, context);
288 } 280 }
289 } 281 }
290 282
291 Map toJson(JsonStrategy strategy) { 283 Map toJson(JsonStrategy strategy) {
292 return { 284 return {
293 'kind': kind.index, 285 'kind': kind.index,
294 'html': htmlParts.map((p) => p.toJson(strategy)).toList(), 286 'html': htmlParts.map((p) => p.toJson(strategy)).toList(),
295 }; 287 };
296 } 288 }
297 289
298 static HtmlLine fromJson(Map json, JsonStrategy strategy) { 290 static HtmlLine fromJson(Map json, JsonStrategy strategy) {
299 HtmlLine line = new HtmlLine(); 291 HtmlLine line = new HtmlLine();
300 json['html'] 292 json['html'].forEach(
301 .forEach((part) => line.htmlParts 293 (part) => line.htmlParts.add(HtmlPart.fromJson(part, strategy)));
302 .add(HtmlPart.fromJson(part, strategy)));
303 return line; 294 return line;
304 } 295 }
305 } 296 }
306 297
307 class CodePart { 298 class CodePart {
308 final List<Annotation> annotations; 299 final List<Annotation> annotations;
309 final String subsequentCode; 300 final String subsequentCode;
310 301
311 CodePart(this.annotations, this.subsequentCode); 302 CodePart(this.annotations, this.subsequentCode);
312 303
313 void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) { 304 void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {
314 Iterable<Annotation> included = 305 Iterable<Annotation> included =
315 annotations.where(context.includeAnnotation); 306 annotations.where(context.includeAnnotation);
316 307
317 List<HtmlPart> htmlParts = <HtmlPart>[]; 308 List<HtmlPart> htmlParts = <HtmlPart>[];
318 if (included.isNotEmpty) { 309 if (included.isNotEmpty) {
319 AnnotationData annotationData = 310 AnnotationData annotationData =
320 context.getAnnotationData(included, forSpan: false); 311 context.getAnnotationData(included, forSpan: false);
321 AnnotationData annotationDataForSpan = 312 AnnotationData annotationDataForSpan =
322 context.getAnnotationData(included, forSpan: true); 313 context.getAnnotationData(included, forSpan: true);
323 314
324 String head = subsequentCode; 315 String head = subsequentCode;
325 String tail = ''; 316 String tail = '';
326 if (subsequentCode.length > 1) { 317 if (subsequentCode.length > 1) {
327 head = subsequentCode.substring(0, 1); 318 head = subsequentCode.substring(0, 1);
328 tail = subsequentCode.substring(1); 319 tail = subsequentCode.substring(1);
329 } 320 }
330 321
331 void addForSpan(AnnotationData data) { 322 void addForSpan(AnnotationData data) {
332 htmlParts.add(new TagPart( 323 htmlParts.add(new TagPart(data.tag,
333 data.tag,
334 properties: data.properties, 324 properties: data.properties,
335 content: [new HtmlText(subsequentCode)])); 325 content: [new HtmlText(subsequentCode)]));
336 } 326 }
337 327
338 if (annotationData != null && 328 if (annotationData != null && annotationDataForSpan != null) {
339 annotationDataForSpan != null) { 329 htmlParts.add(new TagPart(annotationDataForSpan.tag,
340 htmlParts.add(new TagPart(
341 annotationDataForSpan.tag,
342 properties: annotationDataForSpan.properties, 330 properties: annotationDataForSpan.properties,
343 content: [ 331 content: [
344 new TagPart( 332 new TagPart(annotationData.tag,
345 annotationData.tag,
346 properties: annotationData.properties, 333 properties: annotationData.properties,
347 content: [new HtmlText(head)]), 334 content: [new HtmlText(head)]),
348 new HtmlText(tail)])); 335 new HtmlText(tail)
336 ]));
349 } else if (annotationDataForSpan != null) { 337 } else if (annotationDataForSpan != null) {
350 htmlParts.add(new TagPart( 338 htmlParts.add(new TagPart(annotationDataForSpan.tag,
351 annotationDataForSpan.tag,
352 properties: annotationDataForSpan.properties, 339 properties: annotationDataForSpan.properties,
353 content: [new HtmlText(subsequentCode)])); 340 content: [new HtmlText(subsequentCode)]));
354 } else if (annotationData != null) { 341 } else if (annotationData != null) {
355 htmlParts.add(new TagPart( 342 htmlParts.add(new TagPart(annotationData.tag,
356 annotationData.tag,
357 properties: annotationData.properties, 343 properties: annotationData.properties,
358 content: [new HtmlText(head)])); 344 content: [new HtmlText(head)]));
359 htmlParts.add(new HtmlText(tail)); 345 htmlParts.add(new HtmlText(tail));
360 } else { 346 } else {
361 htmlParts.add(new HtmlText(subsequentCode)); 347 htmlParts.add(new HtmlText(subsequentCode));
362 } 348 }
363 } else { 349 } else {
364 htmlParts.add(new HtmlText(subsequentCode)); 350 htmlParts.add(new HtmlText(subsequentCode));
365 } 351 }
366 352
367 for (HtmlPart part in htmlParts) { 353 for (HtmlPart part in htmlParts) {
368 part.printHtmlOn(buffer, context); 354 part.printHtmlOn(buffer, context);
369 } 355 }
370 } 356 }
371 357
372 Map toJson(JsonStrategy strategy) { 358 Map toJson(JsonStrategy strategy) {
373 return { 359 return {
374 'annotations': 360 'annotations':
375 annotations.map((a) => strategy.encodeAnnotation(a)).toList(), 361 annotations.map((a) => strategy.encodeAnnotation(a)).toList(),
376 'subsequentCode': subsequentCode, 362 'subsequentCode': subsequentCode,
377 }; 363 };
378 } 364 }
379 365
380 static CodePart fromJson(Map json, JsonStrategy strategy) { 366 static CodePart fromJson(Map json, JsonStrategy strategy) {
381 return new CodePart( 367 return new CodePart(
382 json['annotations'].map((j) => strategy.decodeAnnotation(j)).toList(), 368 json['annotations'].map((j) => strategy.decodeAnnotation(j)).toList(),
383 json['subsequentCode']); 369 json['subsequentCode']);
384 } 370 }
385 } 371 }
(...skipping 10 matching lines...) Expand all
396 toJson(JsonStrategy strategy) { 382 toJson(JsonStrategy strategy) {
397 return { 383 return {
398 'kind': kind.index, 384 'kind': kind.index,
399 'lineNo': lineNo, 385 'lineNo': lineNo,
400 'lineAnnotation': strategy.encodeLineAnnotation(lineAnnotation), 386 'lineAnnotation': strategy.encodeLineAnnotation(lineAnnotation),
401 }; 387 };
402 } 388 }
403 389
404 static LineNumber fromJson(Map json, JsonStrategy strategy) { 390 static LineNumber fromJson(Map json, JsonStrategy strategy) {
405 return new LineNumber( 391 return new LineNumber(
406 json['lineNo'], 392 json['lineNo'], strategy.decodeLineAnnotation(json['lineAnnotation']));
407 strategy.decodeLineAnnotation(json['lineAnnotation']));
408 } 393 }
409 394
410 @override 395 @override
411 void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) { 396 void printHtmlOn(StringBuffer buffer, HtmlPrintContext context) {
412 buffer.write(lineNumber( 397 buffer.write(lineNumber(lineNo,
413 lineNo,
414 width: context.lineNoWidth, 398 width: context.lineNoWidth,
415 useNbsp: !context.usePre, 399 useNbsp: !context.usePre,
416 className: context.getLineData(lineAnnotation).lineNumberClass)); 400 className: context.getLineData(lineAnnotation).lineNumberClass));
417 } 401 }
418 } 402 }
419 403
420 class CodeLine extends HtmlPart { 404 class CodeLine extends HtmlPart {
421 final Uri uri; 405 final Uri uri;
422 final int lineNo; 406 final int lineNo;
423 final int offset; 407 final int offset;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 } 439 }
456 440
457 Map toJson(JsonStrategy strategy) { 441 Map toJson(JsonStrategy strategy) {
458 return { 442 return {
459 'kind': kind.index, 443 'kind': kind.index,
460 'lineNo': lineNo, 444 'lineNo': lineNo,
461 'offset': offset, 445 'offset': offset,
462 'code': code, 446 'code': code,
463 'parts': codeParts.map((p) => p.toJson(strategy)).toList(), 447 'parts': codeParts.map((p) => p.toJson(strategy)).toList(),
464 'annotations': 448 'annotations':
465 annotations.map((a) => strategy.encodeAnnotation(a)).toList(), 449 annotations.map((a) => strategy.encodeAnnotation(a)).toList(),
466 'lineAnnotation': lineAnnotation != null 450 'lineAnnotation': lineAnnotation != null
467 ? strategy.encodeLineAnnotation(lineAnnotation) : null, 451 ? strategy.encodeLineAnnotation(lineAnnotation)
452 : null,
468 }; 453 };
469 } 454 }
470 455
471 static CodeLine fromJson(Map json, JsonStrategy strategy) { 456 static CodeLine fromJson(Map json, JsonStrategy strategy) {
472 CodeLine line = new CodeLine( 457 CodeLine line = new CodeLine(json['lineNo'], json['offset'],
473 json['lineNo'],
474 json['offset'],
475 uri: json['uri'] != null ? Uri.parse(json['uri']) : null); 458 uri: json['uri'] != null ? Uri.parse(json['uri']) : null);
476 line.codeBuffer.write(json['code']); 459 line.codeBuffer.write(json['code']);
477 json['parts'] 460 json['parts'].forEach(
478 .forEach((part) => line.codeParts 461 (part) => line.codeParts.add(CodePart.fromJson(part, strategy)));
479 .add(CodePart.fromJson(part, strategy)));
480 json['annotations'] 462 json['annotations']
481 .forEach((a) => line.annotations 463 .forEach((a) => line.annotations.add(strategy.decodeAnnotation(a)));
482 .add(strategy.decodeAnnotation(a)));
483 line.lineAnnotation = json['lineAnnotation'] != null 464 line.lineAnnotation = json['lineAnnotation'] != null
484 ? strategy.decodeLineAnnotation(json['lineAnnotation']) : null; 465 ? strategy.decodeLineAnnotation(json['lineAnnotation'])
466 : null;
485 return line; 467 return line;
486 } 468 }
487 } 469 }
488 470
489 class JsonStrategy { 471 class JsonStrategy {
490 const JsonStrategy(); 472 const JsonStrategy();
491 473
492 Map encodeAnnotation(Annotation annotation) { 474 Map encodeAnnotation(Annotation annotation) {
493 return { 475 return {
494 'id': annotation.id, 476 'id': annotation.id,
495 'codeOffset': annotation.codeOffset, 477 'codeOffset': annotation.codeOffset,
496 'title': annotation.title, 478 'title': annotation.title,
497 'data': annotation.data, 479 'data': annotation.data,
498 }; 480 };
499 } 481 }
500 482
501 Annotation decodeAnnotation(Map json) { 483 Annotation decodeAnnotation(Map json) {
502 return new Annotation( 484 return new Annotation(json['id'], json['codeOffset'], json['title'],
503 json['id'],
504 json['codeOffset'],
505 json['title'],
506 data: json['data']); 485 data: json['data']);
507 } 486 }
508 487
509
510 encodeLineAnnotation(lineAnnotation) => lineAnnotation; 488 encodeLineAnnotation(lineAnnotation) => lineAnnotation;
511 489
512 decodeLineAnnotation(json) => json; 490 decodeLineAnnotation(json) => json;
513 } 491 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/sourcemaps/diff_view.dart ('k') | tests/compiler/dart2js/sourcemaps/js_tracer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698