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

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

Issue 2989453002: Add support for compiling Dart via the FE in dart2js. (Closed)
Patch Set: update status Created 3 years, 5 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/compiler/lib/src/compiler.dart
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index 64405b90222488f263c78bd87332e96caf8dc34e..307f87e3c15db8ef8f58693355ad217cfee193f6 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -82,6 +82,8 @@ typedef CompilerDiagnosticReporter MakeReporterFunction(
abstract class Compiler {
Measurer get measurer;
+ api.CompilerInput get provider;
+
final IdGenerator idGenerator = new IdGenerator();
FrontendStrategy frontendStrategy;
BackendStrategy backendStrategy;
@@ -188,10 +190,10 @@ abstract class Compiler {
} else {
_reporter = new CompilerDiagnosticReporter(this, options);
}
- frontendStrategy = options.loadFromDill
+ frontendStrategy = options.useKernel
? new KernelFrontEndStrategy(options, reporter, environment)
: new ResolutionFrontEndStrategy(this);
- backendStrategy = options.loadFromDill
+ backendStrategy = options.useKernel
? new KernelBackendStrategy(this)
: new ElementBackendStrategy(this);
_resolution = createResolution();
@@ -213,6 +215,7 @@ abstract class Compiler {
options.compileOnly
? new _NoScriptLoader(this)
: new _ScriptLoader(this),
+ provider,
new _ElementScanner(scanner),
serialization,
resolvePatchUri,
@@ -380,7 +383,7 @@ abstract class Compiler {
// front end for the Kernel path since Kernel doesn't have the notion of
// imports (everything has already been resolved). (See
// https://github.com/dart-lang/sdk/issues/29368)
- if (!options.useKernel && !options.loadFromDill) {
+ if (!options.useKernel) {
for (Uri uri in resolvedUriTranslator.disallowedLibraryUris) {
if (loadedLibraries.containsLibrary(uri)) {
Set<String> importChains =
@@ -461,6 +464,9 @@ abstract class Compiler {
reporter.log('Compiling $uri (${options.buildId})');
}
LoadedLibraries libraries = await libraryLoader.loadLibrary(uri);
+ // Note: libraries may be null because of errors trying to find files or
+ // parse-time errors (when using `package:front_end` as a loader).
+ if (libraries == null) return;
processLoadedLibraries(libraries);
mainApp = libraries.rootLibrary;
}
@@ -515,7 +521,7 @@ abstract class Compiler {
FunctionEntity mainFunction =
frontendStrategy.computeMain(rootLibrary, mainImpact);
- if (!options.loadFromDill) {
+ if (!options.useKernel) {
// TODO(johnniwinther): Support mirrors usages analysis from dill.
mirrorUsageAnalyzerTask.analyzeUsage(rootLibrary);
}
@@ -557,7 +563,7 @@ abstract class Compiler {
}
}
if (frontendStrategy.commonElements.mirrorsLibrary != null &&
- !options.loadFromDill) {
+ !options.useKernel) {
// TODO(johnniwinther): Support mirrors from dill.
resolveLibraryMetadata();
}
@@ -572,7 +578,8 @@ abstract class Compiler {
_reporter.reportSuppressedMessagesSummary();
if (compilationFailed) {
- if (!options.generateCodeWithCompileTimeErrors || options.useKernel) {
+ if (!options.generateCodeWithCompileTimeErrors ||
+ options.useKernelInSsa) {
return;
}
if (mainFunction == null) return;

Powered by Google App Engine
This is Rietveld 408576698