be815e1a86
The new file pkg/dev_compiler/lib/src/analyzer/driver.dart handles building the linked summary for a build unit, and then is capable of doing analysis using LibraryAnalyzer. The algorithm is very similar to analyzer_cli's build mode. The biggest difference is that `dartdevc` has existing support for discovering source files from the explicit source list (rather than requiring every source to be listed on the command line). We don't want to break that support, so there's a bit of logic to follow imports, exports, and parts. After the linked summary is produced, DDC gets the analysis results (errors and resolved AST) for each library, and compiles it into a JS module. Change-Id: I7bf1ce1eca73fd036002e498de5924c488b534dc Reviewed-on: https://dart-review.googlesource.com/c/82469 Commit-Queue: Jenny Messerly <jmesserly@google.com> Reviewed-by: Paul Berry <paulberry@google.com> Reviewed-by: Vijay Menon <vsm@google.com>
54 lines
1.4 KiB
Dart
54 lines
1.4 KiB
Dart
#!/usr/bin/env dart
|
|
// Copyright (c) 2016, 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.
|
|
|
|
/// A straightforward script that builds the SDK.
|
|
///
|
|
/// This would be easy enough to do in a shell script, as we go through the
|
|
/// command line interface. But being able to build from a Dart library means
|
|
/// we can call this during code coverage to get more realistic numbers.
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:dev_compiler/src/analyzer/command.dart';
|
|
|
|
main(List<String> arguments) async {
|
|
var args = ['--no-source-map', '--no-emit-metadata'];
|
|
args.addAll(arguments);
|
|
args.addAll([
|
|
'dart:_runtime',
|
|
'dart:_debugger',
|
|
'dart:_foreign_helper',
|
|
'dart:_interceptors',
|
|
'dart:_internal',
|
|
'dart:_isolate_helper',
|
|
'dart:_js_helper',
|
|
'dart:_js_mirrors',
|
|
'dart:_js_primitives',
|
|
'dart:_metadata',
|
|
'dart:_native_typed_data',
|
|
'dart:async',
|
|
'dart:collection',
|
|
'dart:convert',
|
|
'dart:core',
|
|
'dart:developer',
|
|
'dart:io',
|
|
'dart:isolate',
|
|
'dart:js',
|
|
'dart:js_util',
|
|
'dart:math',
|
|
'dart:mirrors',
|
|
'dart:typed_data',
|
|
'dart:indexed_db',
|
|
'dart:html',
|
|
'dart:html_common',
|
|
'dart:svg',
|
|
'dart:web_audio',
|
|
'dart:web_gl',
|
|
'dart:web_sql'
|
|
]);
|
|
|
|
exit((await compile(args)).exitCode);
|
|
}
|