mirror of
https://github.com/dart-lang/sdk
synced 2024-09-20 02:27:58 +00:00
Change dart2js.dart to use compiler_new.dart
BUG= R=sigmund@google.com Review URL: https://codereview.chromium.org/1973753004 .
This commit is contained in:
parent
3968005cc8
commit
50b85640b3
|
@ -10,10 +10,11 @@ import 'dart:io' show exit, File, FileMode, Platform, stdin, stderr;
|
|||
|
||||
import 'package:package_config/discovery.dart' show findPackages;
|
||||
|
||||
import '../compiler.dart' as api;
|
||||
import '../compiler_new.dart' as api;
|
||||
import 'commandline_options.dart';
|
||||
import 'filenames.dart';
|
||||
import 'io/source_file.dart';
|
||||
import 'options.dart' show CompilerOptions;
|
||||
import 'source_file_provider.dart';
|
||||
import 'util/command_line.dart';
|
||||
import 'util/uri_extras.dart';
|
||||
|
@ -484,18 +485,17 @@ Future<api.CompilationResult> compile(List<String> argv) {
|
|||
return result;
|
||||
}
|
||||
|
||||
Uri uri = currentDirectory.resolve(arguments[0]);
|
||||
return compileFunc(
|
||||
uri,
|
||||
libraryRoot,
|
||||
packageRoot,
|
||||
inputProvider,
|
||||
diagnosticHandler,
|
||||
options,
|
||||
outputProvider,
|
||||
environment,
|
||||
packageConfig,
|
||||
findPackages)
|
||||
Uri script = currentDirectory.resolve(arguments[0]);
|
||||
CompilerOptions compilerOptions = new CompilerOptions.parse(
|
||||
entryPoint: script,
|
||||
libraryRoot: libraryRoot,
|
||||
packageRoot: packageRoot,
|
||||
packageConfig: packageConfig,
|
||||
packagesDiscoveryProvider: findPackages,
|
||||
options: options,
|
||||
environment: environment);
|
||||
return compileFunc(compilerOptions, inputProvider,
|
||||
diagnosticHandler, outputProvider)
|
||||
.then(compilationDone);
|
||||
}
|
||||
|
||||
|
@ -706,8 +706,15 @@ void main(List<String> arguments) {
|
|||
internalMain(arguments);
|
||||
}
|
||||
|
||||
var exitFunc = exit;
|
||||
var compileFunc = api.compile;
|
||||
typedef void ExitFunc(int exitCode);
|
||||
typedef Future<api.CompilationResult> CompileFunc(
|
||||
CompilerOptions compilerOptions,
|
||||
api.CompilerInput compilerInput,
|
||||
api.CompilerDiagnostics compilerDiagnostics,
|
||||
api.CompilerOutput compilerOutput);
|
||||
|
||||
ExitFunc exitFunc = exit;
|
||||
CompileFunc compileFunc = api.compile;
|
||||
|
||||
Future<api.CompilationResult> internalMain(List<String> arguments) {
|
||||
Future onError(exception, trace) {
|
||||
|
|
|
@ -238,7 +238,7 @@ class FormattingDiagnosticHandler implements CompilerDiagnostics {
|
|||
|
||||
typedef void MessageCallback(String message);
|
||||
|
||||
class RandomAccessFileOutputProvider {
|
||||
class RandomAccessFileOutputProvider implements CompilerOutput {
|
||||
final Uri out;
|
||||
final Uri sourceMapOut;
|
||||
final MessageCallback onInfo;
|
||||
|
@ -262,6 +262,10 @@ class RandomAccessFileOutputProvider {
|
|||
}
|
||||
|
||||
EventSink<String> call(String name, String extension) {
|
||||
return createEventSink(name, extension);
|
||||
}
|
||||
|
||||
EventSink<String> createEventSink(String name, String extension) {
|
||||
Uri uri;
|
||||
bool isPrimaryOutput = false;
|
||||
// TODO (johnniwinther, sigurdm): Make a better interface for
|
||||
|
|
|
@ -58,27 +58,34 @@ const List<MessageKind> MESSAGE_SKIP_LIST = const <MessageKind>[
|
|||
|
||||
main(List<String> arguments) {
|
||||
List<String> options = <String>[];
|
||||
for (String argument in arguments) {
|
||||
if (argument == '-v') {
|
||||
options.add(Flags.verbose);
|
||||
} else if (argument.startsWith('-')) {
|
||||
options.add(argument);
|
||||
}
|
||||
}
|
||||
List<Uri> uriList = <Uri>[];
|
||||
for (String arg in arguments) {
|
||||
if (!arg.startsWith('-')) {
|
||||
for (String line in new File(arg).readAsLinesSync()) {
|
||||
line = line.trim();
|
||||
if (line.startsWith('Analyzing uri: ')) {
|
||||
int filenameOffset = line.indexOf('tests/compiler/dart2js/');
|
||||
if (filenameOffset != -1) {
|
||||
uriList.add(Uri.base.resolve(
|
||||
nativeToUriPath(line.substring(filenameOffset))));
|
||||
String filter;
|
||||
bool first = true;
|
||||
for (String argument in arguments) {
|
||||
if (argument.startsWith('-')) {
|
||||
options.add(argument == '-v' ? Flags.verbose : argument);
|
||||
} else if (first) {
|
||||
File file = new File(argument);
|
||||
if (file.existsSync()) {
|
||||
// Read test files from [file].
|
||||
for (String line in file.readAsLinesSync()) {
|
||||
line = line.trim();
|
||||
if (line.startsWith('Analyzing uri: ')) {
|
||||
int filenameOffset = line.indexOf('tests/compiler/dart2js/');
|
||||
if (filenameOffset != -1) {
|
||||
uriList.add(Uri.base.resolve(
|
||||
nativeToUriPath(line.substring(filenameOffset))));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Use argument as filter on test files.
|
||||
filter = argument;
|
||||
}
|
||||
} else {
|
||||
throw new ArgumentError("Extra argument $argument in $arguments.");
|
||||
}
|
||||
first = false;
|
||||
}
|
||||
|
||||
asyncTest(() async {
|
||||
|
@ -88,6 +95,9 @@ main(List<String> arguments) {
|
|||
for (FileSystemEntity entity in dir.listSync(recursive: true)) {
|
||||
if (entity is File && entity.path.endsWith('.dart')) {
|
||||
Uri file = Uri.base.resolve(nativeToUriPath(entity.path));
|
||||
if (filter != null && !'$file'.contains(filter)) {
|
||||
continue;
|
||||
}
|
||||
if (!SKIP_LIST.any((skip) => file.path.contains(skip))) {
|
||||
uriList.add(file);
|
||||
}
|
||||
|
|
|
@ -56,11 +56,9 @@ class CollectingFormattingDiagnosticHandler
|
|||
int throwOnErrorCount;
|
||||
}
|
||||
|
||||
testOutputProvider(script, libraryRoot, packageRoot, inputProvider, handler,
|
||||
[options, outputProvider, environment, packageConfig,
|
||||
findPackages]) {
|
||||
testOutputProvider(options, input, diagnostics, output) {
|
||||
diagnosticHandler = new CollectingFormattingDiagnosticHandler();
|
||||
outputProvider("/non/existing/directory/should/fail/file", "js");
|
||||
output.createEventSink("/non/existing/directory/should/fail/file", "js");
|
||||
}
|
||||
|
||||
void main() {
|
||||
|
|
|
@ -11,7 +11,6 @@ import 'dart:io' show Platform;
|
|||
import 'package:async_helper/async_helper.dart';
|
||||
import 'package:expect/expect.dart';
|
||||
|
||||
import 'package:compiler/compiler.dart' as old_api;
|
||||
import 'package:compiler/compiler_new.dart' as api;
|
||||
import 'package:compiler/src/common/codegen.dart';
|
||||
import 'package:compiler/src/compile_time_constants.dart';
|
||||
|
@ -26,7 +25,6 @@ import 'package:compiler/src/enqueue.dart';
|
|||
import 'package:compiler/src/elements/elements.dart';
|
||||
import 'package:compiler/src/library_loader.dart';
|
||||
import 'package:compiler/src/null_compiler_output.dart';
|
||||
import 'package:compiler/src/old_to_new_api.dart';
|
||||
import 'package:compiler/src/options.dart' show CompilerOptions;
|
||||
import 'package:compiler/src/resolution/resolution.dart';
|
||||
import 'package:compiler/src/scanner/scanner_task.dart';
|
||||
|
@ -42,24 +40,12 @@ class TestCompiler extends apiimpl.CompilerImpl {
|
|||
TestCompiler(api.CompilerInput inputProvider,
|
||||
api.CompilerOutput outputProvider,
|
||||
api.CompilerDiagnostics handler,
|
||||
Uri libraryRoot,
|
||||
Uri packageRoot,
|
||||
List<String> options,
|
||||
Map<String, dynamic> environment,
|
||||
Uri packageConfig,
|
||||
api.PackagesDiscoveryProvider findPackages,
|
||||
CompilerOptions options,
|
||||
String this.testMarker,
|
||||
String this.testType,
|
||||
Function this.onTest)
|
||||
: reporter = new TestDiagnosticReporter(),
|
||||
super(inputProvider, outputProvider, handler,
|
||||
new CompilerOptions.parse(
|
||||
libraryRoot: libraryRoot,
|
||||
packageRoot: packageRoot,
|
||||
options: options,
|
||||
environment: environment,
|
||||
packageConfig: packageConfig,
|
||||
packagesDiscoveryProvider: findPackages)) {
|
||||
super(inputProvider, outputProvider, handler, options) {
|
||||
reporter.compiler = this;
|
||||
reporter.reporter = super.reporter;
|
||||
test('Compiler');
|
||||
|
@ -186,36 +172,24 @@ Future testExitCode(
|
|||
}
|
||||
}
|
||||
return new Future(() {
|
||||
Future<old_api.CompilationResult> compile(
|
||||
Uri script,
|
||||
Uri libraryRoot,
|
||||
Uri packageRoot,
|
||||
old_api.CompilerInputProvider inputProvider,
|
||||
old_api.DiagnosticHandler handler,
|
||||
[List<String> options = const [],
|
||||
old_api.CompilerOutputProvider outputProvider,
|
||||
Map<String, dynamic> environment = const {},
|
||||
Uri packageConfig,
|
||||
api.PackagesDiscoveryProvider findPackages]) {
|
||||
libraryRoot = Platform.script.resolve('../../../sdk/');
|
||||
outputProvider = NullSink.outputProvider;
|
||||
Future<api.CompilationResult> compile(
|
||||
CompilerOptions compilerOptions,
|
||||
api.CompilerInput compilerInput,
|
||||
api.CompilerDiagnostics compilerDiagnostics,
|
||||
api.CompilerOutput compilerOutput) {
|
||||
compilerOutput = const NullCompilerOutput();
|
||||
// Use this to silence the test when debugging:
|
||||
// handler = (uri, begin, end, message, kind) {};
|
||||
Compiler compiler = new TestCompiler(
|
||||
new LegacyCompilerInput(inputProvider),
|
||||
new LegacyCompilerOutput(outputProvider),
|
||||
new LegacyCompilerDiagnostics(handler),
|
||||
libraryRoot,
|
||||
packageRoot,
|
||||
options,
|
||||
environment,
|
||||
packageConfig,
|
||||
findPackages,
|
||||
compilerInput,
|
||||
compilerOutput,
|
||||
compilerDiagnostics,
|
||||
compilerOptions,
|
||||
marker,
|
||||
type,
|
||||
onTest);
|
||||
return compiler.run(script).then((bool success) {
|
||||
return new old_api.CompilationResult(compiler, isSuccess: success);
|
||||
return compiler.run(compilerOptions.entryPoint).then((bool success) {
|
||||
return new api.CompilationResult(compiler, isSuccess: success);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -242,6 +216,7 @@ Future testExitCode(
|
|||
entry.compileFunc = compile;
|
||||
|
||||
List<String> args = new List<String>.from(options)
|
||||
..add("--library-root=${Platform.script.resolve('../../../sdk/')}")
|
||||
..add("tests/compiler/dart2js/data/exit_code_helper.dart");
|
||||
Future result = entry.internalMain(args);
|
||||
return result.catchError((e, s) {
|
||||
|
|
|
@ -8,7 +8,7 @@ import 'dart:io';
|
|||
import 'package:async_helper/async_helper.dart';
|
||||
import 'package:compiler/src/dart2js.dart' as entry;
|
||||
import 'package:compiler/src/apiimpl.dart';
|
||||
import 'package:compiler/compiler.dart';
|
||||
import 'package:compiler/compiler_new.dart';
|
||||
|
||||
import 'source_map_validator_helper.dart';
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import 'dart:io';
|
|||
import 'package:async_helper/async_helper.dart';
|
||||
import 'package:compiler/src/dart2js.dart' as entry;
|
||||
import 'package:compiler/src/apiimpl.dart';
|
||||
import 'package:compiler/compiler.dart';
|
||||
import 'package:compiler/compiler_new.dart';
|
||||
|
||||
import 'source_map_validator_helper.dart';
|
||||
|
||||
|
|
Loading…
Reference in a new issue