| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 dart2js.test.memory_compiler; | 5 library dart2js.test.memory_compiler; |
| 6 | 6 |
| 7 import 'memory_source_file_helper.dart'; | 7 import 'memory_source_file_helper.dart'; |
| 8 | 8 |
| 9 import 'package:compiler/src/dart2jslib.dart' | 9 import 'package:compiler/src/dart2jslib.dart' |
| 10 show NullSink; | 10 show NullSink; |
| 11 | 11 |
| 12 import 'package:compiler/compiler.dart' | 12 import 'package:compiler/compiler.dart' |
| 13 show Diagnostic, DiagnosticHandler, CompilerOutputProvider; | 13 show Diagnostic, DiagnosticHandler, CompilerOutputProvider; |
| 14 | 14 |
| 15 import 'dart:async'; | 15 import 'dart:async'; |
| 16 | 16 |
| 17 import 'package:compiler/src/mirrors/source_mirrors.dart'; | 17 import 'package:compiler/src/mirrors/source_mirrors.dart'; |
| 18 import 'package:compiler/src/mirrors/analyze.dart'; | 18 import 'package:compiler/src/mirrors/analyze.dart'; |
| 19 | 19 |
| 20 import 'package:compiler/src/library_loader.dart' | 20 import 'package:compiler/src/library_loader.dart' |
| 21 show LoadedLibraries; | 21 show LoadedLibraries; |
| 22 | 22 |
| 23 export 'output_collector.dart'; |
| 24 |
| 23 class DiagnosticMessage { | 25 class DiagnosticMessage { |
| 24 final Uri uri; | 26 final Uri uri; |
| 25 final int begin; | 27 final int begin; |
| 26 final int end; | 28 final int end; |
| 27 final String message; | 29 final String message; |
| 28 final Diagnostic kind; | 30 final Diagnostic kind; |
| 29 | 31 |
| 30 DiagnosticMessage(this.uri, this.begin, this.end, this.message, this.kind); | 32 DiagnosticMessage(this.uri, this.begin, this.end, this.message, this.kind); |
| 31 | 33 |
| 32 String toString() => '$uri:$begin:$end:$message:$kind'; | 34 String toString() => '$uri:$begin:$end:$message:$kind'; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 55 | 57 |
| 56 Iterable<DiagnosticMessage> get hints { | 58 Iterable<DiagnosticMessage> get hints { |
| 57 return filterMessagesByKind(Diagnostic.HINT); | 59 return filterMessagesByKind(Diagnostic.HINT); |
| 58 } | 60 } |
| 59 | 61 |
| 60 Iterable<DiagnosticMessage> get infos { | 62 Iterable<DiagnosticMessage> get infos { |
| 61 return filterMessagesByKind(Diagnostic.INFO); | 63 return filterMessagesByKind(Diagnostic.INFO); |
| 62 } | 64 } |
| 63 } | 65 } |
| 64 | 66 |
| 65 class BufferedEventSink implements EventSink<String> { | |
| 66 StringBuffer sb = new StringBuffer(); | |
| 67 String text; | |
| 68 | |
| 69 void add(String event) { | |
| 70 sb.write(event); | |
| 71 } | |
| 72 | |
| 73 void addError(errorEvent, [StackTrace stackTrace]) { | |
| 74 // Do not support this. | |
| 75 } | |
| 76 | |
| 77 void close() { | |
| 78 text = sb.toString(); | |
| 79 sb = null; | |
| 80 } | |
| 81 } | |
| 82 | |
| 83 class OutputCollector { | |
| 84 Map<String, Map<String, BufferedEventSink>> outputMap = {}; | |
| 85 | |
| 86 EventSink<String> call(String name, String extension) { | |
| 87 Map<String, BufferedEventSink> sinkMap = | |
| 88 outputMap.putIfAbsent(extension, () => {}); | |
| 89 return sinkMap.putIfAbsent(name, () => new BufferedEventSink()); | |
| 90 } | |
| 91 | |
| 92 String getOutput(String name, String extension) { | |
| 93 Map<String, BufferedEventSink> sinkMap = outputMap[extension]; | |
| 94 if (sinkMap == null) return null; | |
| 95 BufferedEventSink sink = sinkMap[name]; | |
| 96 return sink != null ? sink.text : null; | |
| 97 } | |
| 98 } | |
| 99 | |
| 100 DiagnosticHandler createDiagnosticHandler(DiagnosticHandler diagnosticHandler, | 67 DiagnosticHandler createDiagnosticHandler(DiagnosticHandler diagnosticHandler, |
| 101 SourceFileProvider provider, | 68 SourceFileProvider provider, |
| 102 bool showDiagnostics) { | 69 bool showDiagnostics) { |
| 103 var handler = diagnosticHandler; | 70 var handler = diagnosticHandler; |
| 104 if (showDiagnostics) { | 71 if (showDiagnostics) { |
| 105 if (diagnosticHandler == null) { | 72 if (diagnosticHandler == null) { |
| 106 handler = new FormattingDiagnosticHandler(provider); | 73 handler = new FormattingDiagnosticHandler(provider); |
| 107 } else { | 74 } else { |
| 108 var formattingHandler = new FormattingDiagnosticHandler(provider); | 75 var formattingHandler = new FormattingDiagnosticHandler(provider); |
| 109 handler = (Uri uri, int begin, int end, String message, Diagnostic kind) { | 76 handler = (Uri uri, int begin, int end, String message, Diagnostic kind) { |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 | 201 |
| 235 class MemoryLoadedLibraries implements LoadedLibraries { | 202 class MemoryLoadedLibraries implements LoadedLibraries { |
| 236 final Map copiedLibraries; | 203 final Map copiedLibraries; |
| 237 | 204 |
| 238 MemoryLoadedLibraries(this.copiedLibraries); | 205 MemoryLoadedLibraries(this.copiedLibraries); |
| 239 | 206 |
| 240 @override | 207 @override |
| 241 bool containsLibrary(Uri uri) => copiedLibraries.containsKey(uri); | 208 bool containsLibrary(Uri uri) => copiedLibraries.containsKey(uri); |
| 242 | 209 |
| 243 @override | 210 @override |
| 244 void forEachImportChain(f) {} | 211 void forEachImportChain(f, {callback}) {} |
| 245 | 212 |
| 246 @override | 213 @override |
| 247 void forEachLibrary(f) {} | 214 void forEachLibrary(f) {} |
| 248 | 215 |
| 249 @override | 216 @override |
| 250 getLibrary(Uri uri) => copiedLibraries[uri]; | 217 getLibrary(Uri uri) => copiedLibraries[uri]; |
| 251 | 218 |
| 252 @override | 219 @override |
| 253 Uri get rootUri => null; | 220 Uri get rootUri => null; |
| 254 } | 221 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 266 createDiagnosticHandler(diagnosticHandler, provider, showDiagnostics); | 233 createDiagnosticHandler(diagnosticHandler, provider, showDiagnostics); |
| 267 | 234 |
| 268 List<Uri> libraries = <Uri>[]; | 235 List<Uri> libraries = <Uri>[]; |
| 269 memorySourceFiles.forEach((String path, _) { | 236 memorySourceFiles.forEach((String path, _) { |
| 270 libraries.add(new Uri(scheme: 'memory', path: path)); | 237 libraries.add(new Uri(scheme: 'memory', path: path)); |
| 271 }); | 238 }); |
| 272 | 239 |
| 273 return analyze(libraries, libraryRoot, packageRoot, | 240 return analyze(libraries, libraryRoot, packageRoot, |
| 274 provider, handler, options); | 241 provider, handler, options); |
| 275 } | 242 } |
| OLD | NEW |