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

Unified Diff: pkg/dart2js_incremental/lib/compiler.dart

Issue 2647343003: Update dart2js unit tests to dart_parser and dart_scanner. (Closed)
Patch Set: Address review comments. Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: pkg/dart2js_incremental/lib/compiler.dart
diff --git a/pkg/dart2js_incremental/lib/compiler.dart b/pkg/dart2js_incremental/lib/compiler.dart
deleted file mode 100644
index f0a195e689361ea7bfbdaf7c1d7bc066d6843e3f..0000000000000000000000000000000000000000
--- a/pkg/dart2js_incremental/lib/compiler.dart
+++ /dev/null
@@ -1,211 +0,0 @@
-// Copyright (c) 2015, 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.
-
-import 'dart:io';
-
-import 'dart:async' show
- EventSink,
- Future,
- Stream,
- StreamController,
- StreamSubscription;
-
-import 'package:dart2js_incremental/dart2js_incremental.dart' show
- IncrementalCompilationFailed,
- IncrementalCompiler;
-
-import 'package:compiler/compiler_new.dart' show
- CompilerOutput;
-
-import 'package:compiler/src/old_to_new_api.dart' show
- LegacyCompilerDiagnostics,
- LegacyCompilerInput;
-
-import 'package:compiler/src/source_file_provider.dart' show
- FormattingDiagnosticHandler;
-
-import 'watcher.dart';
-
-main(List<String> arguments) {
- int updateCount = 0;
- StreamSubscription<CompilerEvent> subscription =
- compile(Uri.base.resolve(arguments.first)).listen(null);
- subscription.onData((CompilerEvent event) {
- switch (event.kind) {
- case IncrementalKind.FULL:
- updateCount = 0;
- print('// Compiled JavaScript:');
- print(event['.js']);
- break;
-
- case IncrementalKind.INCREMENTAL:
- Stopwatch sw = event.stopwatch..start();
- String updates = '${event.compiler.allUpdates()}';
- sw.stop();
-
- print('// Patch after ${++updateCount} updates,');
- print('// computed in ${sw.elapsedMicroseconds/1000000} seconds:');
- print(updates);
- break;
-
- case IncrementalKind.ERROR:
- updateCount = 0;
- print("Compilation failed");
- break;
-
- default:
- throw "Unknown kind: ${event.kind}";
- }
- });
- subscription.onError((error, StackTrace trace) {
- if (error is IncrementalCompilationFailed) {
- print("Incremental compilation failed due to:\n${error.reason}");
- } else {
- throw error;
- }
- });
-}
-
-Stream<CompilerEvent> compile(Uri originalInput) {
- StreamController<CompilerEvent> controller =
- new StreamController<CompilerEvent>();
- compileToStream(originalInput, controller);
- return controller.stream;
-}
-
-compileToStream(
- Uri originalInput,
- StreamController<CompilerEvent> controller) async {
- var watcher = new Watcher();
-
- Uri libraryRoot = Uri.base.resolve('sdk/');
- Uri packageRoot = Uri.base.resolve('packages/');
-
- FormattingDiagnosticHandler diagnosticHandler =
- new FormattingDiagnosticHandler();
-
- OutputProvider outputProvider = new OutputProvider();
-
- void resilientDiagnosticHandler(
- Uri uri, int begin, int end, String message, kind) {
- try {
- diagnosticHandler(uri, begin, end, message, kind);
- } catch (e) {
- String name = diagnosticHandler.provider.relativizeUri(uri);
- print('$name@$begin+${end - begin}: [$kind] $message}');
- }
- }
-
- Future inputProvider(Uri uri) {
- if (uri.scheme == "file") {
- if (!'$uri'.startsWith('$libraryRoot')) {
- watcher.watchFile(uri);
- }
- }
- return diagnosticHandler.provider(uri);
- }
-
- while (true) {
- Stopwatch sw = new Stopwatch()..start();
- IncrementalCompiler compiler = new IncrementalCompiler(
- libraryRoot: libraryRoot,
- packageRoot: packageRoot,
- inputProvider: new LegacyCompilerInput(inputProvider),
- diagnosticHandler:
- new LegacyCompilerDiagnostics(resilientDiagnosticHandler),
- outputProvider: outputProvider);
-
- bool success = await compiler.compile(originalInput);
- sw.stop();
- if (success) {
- controller.add(
- new CompilerEvent(
- IncrementalKind.FULL, compiler, outputProvider.output, sw));
- } else {
- controller.add(
- new CompilerEvent(
- IncrementalKind.ERROR, compiler, outputProvider.output, sw));
- }
-
- while (await watcher.hasChanges()) {
- try {
- Map<Uri, Uri> changes = watcher.readChanges();
-
- sw = new Stopwatch()..start();
- String updates = await compiler.compileUpdates(changes);
- sw.stop();
-
- controller.add(
- new CompilerEvent(
- IncrementalKind.INCREMENTAL, compiler, outputProvider.output,
- sw, updates: updates));
-
- } on IncrementalCompilationFailed catch (error, trace) {
- controller.addError(error, trace);
- break;
- }
- }
- }
-}
-
-/// Output provider which collects output in [output].
-class OutputProvider implements CompilerOutput {
- final Map<String, String> output = new Map<String, String>();
-
- EventSink<String> createEventSink(String name, String extension) {
- return new StringEventSink((String data) {
- output['$name.$extension'] = data;
- });
- }
-
- String operator[](String key) => output[key];
-}
-
-/// Helper class to collect sources.
-class StringEventSink implements EventSink<String> {
- List<String> data = <String>[];
-
- final Function onClose;
-
- StringEventSink(this.onClose);
-
- void add(String event) {
- if (data == null) throw 'StringEventSink is closed.';
- data.add(event);
- }
-
- void addError(errorEvent, [StackTrace stackTrace]) {
- throw 'addError($errorEvent, $stackTrace)';
- }
-
- void close() {
- if (data != null) {
- onClose(data.join());
- data = null;
- }
- }
-}
-
-enum IncrementalKind {
- FULL,
- INCREMENTAL,
- ERROR,
-}
-
-class CompilerEvent {
- final IncrementalKind kind;
-
- final IncrementalCompiler compiler;
-
- final Map<String, String> _output;
-
- final Stopwatch stopwatch;
-
- final String updates;
-
- CompilerEvent(
- this.kind, this.compiler, this._output, this.stopwatch, {this.updates});
-
- String operator[](String key) => _output[key];
-}
« no previous file with comments | « pkg/dart2js_incremental/lib/caching_compiler.dart ('k') | pkg/dart2js_incremental/lib/dart2js_incremental.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698