Chromium Code Reviews| Index: tests/compiler/dart2js/memory_compiler.dart |
| diff --git a/tests/compiler/dart2js/memory_compiler.dart b/tests/compiler/dart2js/memory_compiler.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..3bf07d2d93b1e0217d2c16252e4023760849f919 |
| --- /dev/null |
| +++ b/tests/compiler/dart2js/memory_compiler.dart |
| @@ -0,0 +1,68 @@ |
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +library dart2js.test.memory_compiler; |
| + |
| +import 'package:expect/expect.dart'; |
|
Andrei Mouravski
2013/07/03 17:49:49
Nit: we've been formatting imports as:
dart:impor
|
| +import 'memory_source_file_helper.dart'; |
| + |
| +import '../../../sdk/lib/_internal/compiler/implementation/dart2jslib.dart' |
| + show NullSink; |
| + |
| +import '../../../sdk/lib/_internal/compiler/compiler.dart' |
| + show DiagnosticHandler; |
| + |
| +import 'dart:async'; |
| + |
| +import '../../../sdk/lib/_internal/compiler/implementation/mirrors/mirrors.dart'; |
| +import '../../../sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirror.dart'; |
| + |
| +Compiler compilerFor(Map<String,String> memorySourceFiles, |
|
Andrei Mouravski
2013/07/03 17:49:49
A brief doc comment for this would be useful.
|
| + {DiagnosticHandler diagnosticHandler, |
| + List<String> options: const []}) { |
| + Uri script = currentDirectory.resolve(nativeToUriPath(Platform.script)); |
|
Andrei Mouravski
2013/07/03 17:49:49
I'm always bad with paths: does this require that
|
| + Uri libraryRoot = script.resolve('../../../sdk/'); |
| + Uri packageRoot = script.resolve('./packages/'); |
| + |
| + MemorySourceFileProvider.MEMORY_SOURCE_FILES = memorySourceFiles; |
| + var provider = new MemorySourceFileProvider(); |
| + if (diagnosticHandler == null) { |
| + diagnosticHandler = new FormattingDiagnosticHandler(provider); |
| + } |
| + |
| + EventSink<String> outputProvider(String name, String extension) { |
| + if (name != '') throw 'Attempt to output file "$name.$extension"'; |
| + return new NullSink('$name.$extension'); |
| + } |
| + |
| + Compiler compiler = new Compiler(provider.readStringFromUri, |
| + outputProvider, |
| + diagnosticHandler, |
| + libraryRoot, |
| + packageRoot, |
| + options); |
| + return compiler; |
| +} |
| + |
| +Future<MirrorSystem> mirrorSystemFor(Map<String,String> memorySourceFiles, |
| + {DiagnosticHandler diagnosticHandler, |
| + List<String> options: const []}) { |
| + Uri script = currentDirectory.resolve(nativeToUriPath(Platform.script)); |
| + Uri libraryRoot = script.resolve('../../../sdk/'); |
| + Uri packageRoot = script.resolve('./packages/'); |
| + |
| + MemorySourceFileProvider.MEMORY_SOURCE_FILES = memorySourceFiles; |
| + var provider = new MemorySourceFileProvider(); |
| + if (diagnosticHandler == null) { |
| + diagnosticHandler = new FormattingDiagnosticHandler(provider); |
| + } |
| + |
| + List<Uri> libraries = <Uri>[]; |
| + memorySourceFiles.forEach((String path, _) { |
| + libraries.add(new Uri(scheme: 'memory', path: path)); |
| + }); |
| + |
| + return analyze(libraries, libraryRoot, packageRoot, |
| + provider, diagnosticHandler, options); |
| +} |